当隔行扫描的<div>标记</div>中的元素时,getElementById返回null

时间:2014-05-14 07:43:08

标签: javascript html getelementbyid

我知道这个问题之前曾多次被问过,但是,我从来没有找到这个具体的设置。

我的脚本位于<body>标记的末尾,我正在使用window.onload执行警告消息,因此原因不能是尚未加载的DOM。

这也不是拼写错误或任何东西,因为我为了测试目的而剪切和粘贴相同的代码段落,并且当没有隔行扫描时<div>它工作得很好。

但是,当我将<div>置于另一个<div>内时,返回值突然变为null。

我无法理解这种行为。

以下两个代码示例可以更好地说明问题:

工作:

<div id="test123"></div>

// returns the div object

window.onload = function() {
alert(document.getElementById("info123"));
};

不工作:

<div id ="charts_container" style="bottom:0px;padding:0px;overflow:auto;position:absolute; top:35px; left:0px; right:0px; background-color:#ffffff;margin-right:0px;" >
    <div id="test123"></div>
</div>

// returns null

window.onload = function() {
alert(document.getElementById("test123"));
};

1 个答案:

答案 0 :(得分:2)

这两个例子都不会起作用。 info123不是test123。您需要使用正确的ID!

Putting an element inside another one will not hide it from the DOM。之一:

  1. 您输了一个错误,例如从前一个标记中取消>(使用a validator
  2. 在尝试查找之前,您还有一些其他JavaScript要删除该元素