有两个文件,一个HTML,一个JS
HTML简化如下:
<html
<body>
<img id="placeholder" src="images/placeholder.gif" alt="my image gallery" />
<script type="text/javascript">
window.onload=countBodyChildren;
</script>
</body>
</html>JS如下:
function countBodyChildren() {
var body_element = document.getElementsByTagName("body")[0];
alert (body_element.childNodes.length);
}
弹出窗口的内容是3,删除img标签的话,结果是1,也就是说img等于两个object。想不通这是什么原因,有知道的大大请指点一下,不胜感激!
HTML简化如下:
<html
<body>
<img id="placeholder" src="images/placeholder.gif" alt="my image gallery" />
<script type="text/javascript">
window.onload=countBodyChildren;
</script>
</body>
</html>JS如下:
function countBodyChildren() {
var body_element = document.getElementsByTagName("body")[0];
alert (body_element.childNodes.length);
}
弹出窗口的内容是3,删除img标签的话,结果是1,也就是说img等于两个object。想不通这是什么原因,有知道的大大请指点一下,不胜感激!
1 要看最终浏览器生成的DOM
2 回车等空字符也作为文本节点
3 浏览器会根据情况自动插入空的文本节点 可调用firebug 或开发者工具查看DOM结构
4 保险点的做法是判断节点类型nodeType
<body>
<img id="placeholder" src="images/placeholder.gif" alt="my image gallery" />
<script type="text/javascript">
function countBodyChildren() {
var body_element = document.getElementsByTagName("body")[0].childNodes;
for(var i = 0 ; i < body_element.length ; i ++)
{
alert(body_element[i].nodeName)
}
} window.onload=countBodyChildren;
</script>
</body>
</html>
看一下就知道了
网上有下的..我可不是卖书的 呵呵!
1)为什么不是script 等于2个object呢?
2)吧 img 和 script删除了 比如吧他们变成空格 那么body 还有几个子节点呢?