开发者问题收集

Js,document.getElementById(“ID”).innerHTML,错误

2015-04-22
8402

您好,我是 javascript 新手,我正在尝试为测试站点编写一些代码,但遇到了一些问题,下面是我的代码,我一直收到此错误,但我不知道为什么。

TypeError:null 不是对象(正在评估“document.getElementById("h3").innerHTML = “<h3>您已更新!</h3>”')

这是我尝试使用的第二种方法。我想做的是有一个版本列表,我拥有的第一个方法是它会提取 .js 文件并构建一个表,但这不起作用,所以我想我会尝试这个,但猜猜发生了什么?不起作用

我现在使用的代码如下。如果你能帮忙那就太好了。 谢谢,Dakmessier

var current = "1.0";
function get_latest(){
document.getElementById("bob").innerHTML = current;
}

if (local != current){
document.getElementById("Get").innerHTML = "<button><a href=\"bla\">Get the Latest Update!</a></button>";
} else if (local == current){
 document.getElementById("h3").innerHTML = "<h3>You Are up to date!</h3>";
} else {
document.getElementById("h3").innerHTML = "<h3>Sorry, unable to check for update.</h3>";
}
3个回答

document.getElementById(id) 在您的 HTML 中查找具有给定 id 值的元素。 id 值如下所示:

<div id="myHeader">Some Content</div>

然后,您可以使用以下代码找到该元素:

document.getElementById("myHeader");

每个文档中的 ID 值必须是唯一的,因此只有一个元素具有给定的 ID。


如果 id 不是您真正想要的,您可以通过其他方式查找元素,按标签类型、按类名、按属性等...使用带有 document.querySelectorAll() 的 CSS 选择器。

例如,如果您想查找所有 <h3> 标签,您可以执行以下操作:

var items = document.querySelectorAll("h3");

以下是 document.getElementById(...) 可能无法找到您想要的内容的其他一些原因:

  1. Javascript 代码正在运行在解析和加载 DOM 元素之前,因此当您运行代码时,该元素实际上尚未存在。这在从文档的 <head> 部分运行的代码中很常见。

  2. 您在 HTML 中指定 id 值的方式存在 HTML 错误。

  3. 您有一个 HTML 错误,导致浏览器无法正确解析您的 HTML。

  4. 您有一个脚本错误,导致您的脚本在到达您想要运行的部分之前中止。

jfriend00
2015-04-22

事实上,如果 document.getElementById 找不到具有指定 Id 的元素,它将返回 null。

另外,语句:

if (local != current){
 // ..
} else if (local == current){
 // ..
} else {
 // ..
}

有点奇怪。如果 local != currentfalse ,则 local == current 必须为 trueelse if (...) 是多余的,并且 else 部分永远不会运行。

robbmj
2015-04-22

嘿,伙计,您应该做的bast的事情是以下示例,请随时在您的代码片段上复制它:

698372330

我会向您解释一下您的答案:此答案:此答案:此答案是HTML +一个内联脚本,它使内部HTML起作用。就您的答案而言,不清楚您的代码停止的位置,无论如何我的代码段,让我知道

Riccardo
2015-04-23