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属性该不该删去? |