急,javascript计算子节点的问题?
<html>
<head>
<title></title>
</head>
<body>
<ul id="222" onclick="alert(document.childNodes.length)">
<li id="111" >sss</li>
</ul>
<button></button>
</body>
</html>第一个问题:
为什么显示的是1啊?
html,head,title,body,ul,li,button,一共是六个,为什么只显示一个?
第二个问题:
如果给document.childNodes.length写成document.body.childNodes.length的话,显示的是4,
html,head,title,body,ul,li,button,一共是6个,为什么显示成4个,请详细的解释解释!第三个问题
document.childNodes.length是不是说document下的所有节点,那么为什么只显示1
document.body.childNodes.length是不是说body下的所有节点,还是说包括body在内下的所有节点?

解决方案 »

  1.   

    childNodes
    Retrieves a collection of HTML Elements and TextNode objects that are direct descendants of the specified object.
      

  2.   

    问题1:
    document只有一个子节点,即根元素,一个document有且只有一个根元素
      

  3.   

    问题2:
    文本节点也是子节点,document.body.childNodes指的是
    ul
    回车
    button
    回车
      

  4.   

    LS试试
    <html> 
    <head> 
    <title> </title> 
    </head> 
    <body><button onclick="alert(document.body.childNodes.length)"></button></body> 
    </html>
    返回是2
    但没回车.
    实际上第二个节点是BUTTON的闭标签.
      

  5.   

    更正一下.
    后来我用工具测试了一下.
    IE中的.
    第二个节点不是闭标签.
    而是一个自动附加上去的空文本节点.
    试了几个:input型和select都会附加空文本节点
    但是:table和ul则不附加.
    但是普通的回车的确是不会生成文本节点的.
    至于为什么,这个要问写IE的家伙了...我用的是IE6