Javascript 为什么我的元素id返回Null?

Javascript 为什么我的元素id返回Null?,javascript,html,null,Javascript,Html,Null,代码片段:HTML <div id="imgpreview" name="imgpreview"> <img id="srcimg" name="srcimg" /> <div id="resident_name"></div> <div id="resident_addr"></div

代码片段:HTML

               <div id="imgpreview" name="imgpreview">
                   <img id="srcimg" name="srcimg" />

                   <div id="resident_name"></div>
                   <div id="resident_addr"></div>
                   <div id="resident_contact"></div>
                   <div id="sale_or_rent">
                       <img id="for_sale_img" class="obtn" src="../images/ads/ForSaleSignSm.jpg" />
                       <img id="for_rent_img" class="obtn" src="../images/ads/ForRentSignSm.gif" />
                   </div>
               </div>

返回imgpreview DIV的ID,但所有其他IMG和DIV返回null。无论是否为srcimgimg定义了SRC,它都会发生。有人知道为什么会这样吗?我已经盯着这个看了这么久了,我相信一双新的眼睛会有帮助的。TIA.

该代码必须有10年的历史-只需废弃除return document.getElementByIdid;之外的所有内容即可;。我不明白为什么这在任何情况下都不起作用。

因为srcimg和其他内容不在文档的顶层?为什么不直接使用document.getElementById

编辑:哦!这些其他元素不在文档中,因为您试图用反斜杠而不是正斜杠关闭第一个图像。反斜杠基本上被忽略了,这意味着图像的定义一直在继续

将第二行更改为:

 <img id="srcimg" name="srcimg" />
而不是

 <img id="srcimg" name="srcimg" \>

您真的不需要担心document.all和document.layers。document.getElementByIdid与IE4跨浏览器兼容,这是一种过失

问题是onload中的hide_img函数将imgpreview DIV的innerHTML设置为,从而擦除imgpreview DIV中的所有元素

我真的很感激代码建议,因为它们让我有了更好的风格,并评估了每个引用函数,揭示了罪魁祸首

解决了

document.getElementById("imgpreview").children[0].src = "images/new_dis.png";

它改变了srcimgelemetsrc

我正在深入阅读书籍,其中一些显然很旧,还有互联网和任何我可以学习的地方。常见答案似乎是use document.getElementById。我接受了这个建议,尝试了一下,同样的结果。你提到的最高级别是什么?为什么重要?等待例如,仅仅调用document.getElementByIdresident_名称是行不通的?对。如果常驻用户名称DIV与imgpreview DIV处于同一级别或更高级别,则getElementById不作为imgpreview的子级工作,也不作为imgpreview的子级工作。这很奇怪,因为正如您在上面的简单树中看到的,即使是imgpreview DIV也是child的child。。这就是为什么我迷惑不解的原因。我也发现了拼写错误,但是,谢谢你的观察;但是,对我来说,结果是一样的,imgpreview DIV中的任何getElementByID仍然返回NULL。这似乎是共识,我会,谢谢你的回复。谢谢你的回复,我将相应地调整我的代码。我使用Google Chrome是因为它与大多数浏览器兼容,IE 8是因为它不兼容。如果我们想通过document访问对象,请稍加解释。getElementByIdsrcimg它将返回null。但id=srcimg的img标记是id=imgpreview的父div的子级,因此,在父div的子级中,我们可以访问img元素atribute。document.getElementByIdimgpreview.children[0]。src是第一个id=srcimg的img标记的src artibute
document.getElementById("imgpreview").children[0].src = "images/new_dis.png";