黑马程序员技术交流社区

标题: 关于DOM中的空白节点 [打印本页]

作者: 莫洪刚    时间: 2012-4-18 19:56
标题: 关于DOM中的空白节点
HTML代码是这样的:
<body>
<p>Myp</p>空白处<div id="Mydiv">MyDiv</div><span>MySpan</span>
</body>

JAVASCRIPT代码:
   <script type="text/javascript">
        window.onload = function () {
            var Mydiv = document.getElementById("Mydiv");
            alert(Mydiv.firstChild.nodeName); //#text
            alert(Mydiv.nextSibling.nodeName);//span
        }
    </script>
改一下HTML代码:
<body>
<p>Myp</p>空白处<div id="Mydiv">MyDiv</div>
<span>MySpan</span>
</body>
JAVASCRIPT代码:
    <script type="text/javascript">
        window.onload = function () {
            var Mydiv = document.getElementById("Mydiv");
            alert(Mydiv.firstChild.nodeName); //#text
            alert(Mydiv.nextSibling.nodeName); //#text
            alert(Mydiv.nextSibling.nextSibling.nodeName); //span
        }
    </script>
发现在Body中,空白处也是文本节点
猜想IE9是不是和火狐浏览器一样,在DOM树中,所有的空白处也算是一个节点.

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript">
        window.onload = function () {
            var nodes = document.getElementsByTagName("*");
            alert(nodes.length); //发现是5个节点
            for (var i = 0; i < nodes.length; i++) {
                alert(nodes[i].nodeName); //HTML HEAD TITLE SCRIPT BODE(并没有包含文本节点)
            }
        }
    </script>
</head>
<body>
</body>
</html>
那么在IE9中到底包不包含文本节点?为什么在上面这个程序中发现是5个节点树,而没有包含文本节点?
nextSibling属性该不该删去?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2