js里childNodes问题

来源:百度知道 编辑:UC知道 时间:2024/06/03 21:09:25
下面代码为什么childNodes会将文本节点一起算上 弹出div的子节点个数为10,而我把div的子节点全部换成div或者h1 它的childNodes不会算上文本节点 弹出div的子节点个数为5
希望高手解答,小弟在此谢过
<html>
<head>
<title></title>
<script language="javascript">
function test() {
alert(document.getElementById("mydiv").childNodes.length) ;
}
</script>
</head>
<body>
<div id="mydiv">
<span>aaaaaaaaaaaaaaaaa1</span>
<span>aaaaaaaaaaaaaaaaa2</span>
<span>aaaaaaaaaaaaaaaaa3</span>
<span>aaaaaaaaaaaaaaaaa4</span>
<span>aaaaaaaaaaaaaaaaa5</span>
</div>
</body>
</html>

SPAN标记有一个重要而实用的特性,即它什么事也不会做,它的唯一目的就是围绕你的HTML代码中的其它元素,这样你就可以为它们指定样式了。
<span></span>中还是个<div>的元素

你这种现象在IE中是显示了5个节点,这个估计是IE浏览器对块状元素的解析有关,div是块状元素,在一行内不存在空白文字区域(nodeName= #text) 所以才获取到5个节点。 对于h1 -h5也是一样的处理吧
针对你出现的问题,我在IE系列中都测试了这个问题 IE6-8中都会显示5个,但IE9中显示11个(其他浏览器也是11个,不知道你的10个是怎么出来的) 不知道能否给你点帮助