DOM:div默认有文本对象子节点吗?

DOM:div默认有文本对象子节点吗?,dom,Dom,HTML: 坐吧。我在HTML文件中有一个简单的div。现在,在我编写的javascript文件中 <div id="Box" style="height: 100px; width= 100px; background-color: red;"> <img src="someImg.jpg"></img> </div> window.onload=initAll; 函数initAll(){ document.getElementById(

HTML:


坐吧。我在HTML文件中有一个简单的div。现在,在我编写的javascript文件中

<div id="Box" style="height: 100px; width= 100px; background-color: red;">
 <img src="someImg.jpg"></img>
</div>
window.onload=initAll;
函数initAll(){
document.getElementById(“Box”).onclick=childNodes;
}
函数childNodes(){
for(var n=0;n

现在,我不应该只看到一个警报框(因为div元素只有一个子元素是图像)。相反,我得到了3个警报框。第一个和第三个警报“对象文本”,第二个警报“Obkect HTMLImageElement”。为什么会这样?

您的
img
标签周围有空白,标识为文本节点。

您的
img
标签周围有空白,标识为文本节点。

这就是
childNodes
children
之间的区别。我对这一切都是陌生的。从未注意到这种区别。T感谢您的回答。
childNodes
包括文本节点、注释节点以及元素节点。
children
仅包括元素节点。这就是
childNodes
children
之间的区别。我对这一切都是新手。从未注意到这一区别。感谢您的回答。
childNodes
包括文本节点、注释节点以及元素节点。
子节点
仅包括元素节点。
window.onload = initAll;

function initAll(){
document.getElementById("Box").onclick = childNodes;
}

function childNodes(){

for(var n = 0 ; n < this.childNodes.length; n++){
alert(this.childNodes.item(n));
}