请指教javascript节点空格问题?
<body>
<input type=button value=寻找 onclick="alert('--'+document.body.childNodes[1].nodeValue+'--')">
<input type=button id="kk" value="hao" onclick="alert(document.getElementById('kk').value)">
</body>
我用alert('--'+document.body.childNodes[1].nodeValue+'--')查了一下,弹出的是-- --中间有个空格发现第一个input后面会有空格,我在html中的input后面都没写空格的,为什么input后面的这个#text文本节点会是一个空格?请指教一下.第二个问题:<body>
<input type=button value=寻找 onclick="alert(document.body.childNodes.length)">
<input type=button id="kk" value="hao" onclick="alert(document.getElementById('kk').value)">
<button>ssss</button>
</body>当添加了一个button之后,发现第二个input后面的#text文本节点消失了,是什么原因?如果不加button的话,那么第二个input后面的#text文本节点就存在,什么原因?请详细解释解释.

解决方案 »

  1.   

     
    和浏览器解释HTML的规则有关的. 
    具体的规则好像暂时找不到文档支持. 
    因为每个浏览器解释出来的都有不同. 不过据说是input类等是默认必须有内嵌元素的控件会自动添加空文本节点. 
      

  2.   

    我一般不这样写'document.body.childNodes[1].nodeValue'
    我都写成 document.getElementById('xxx').value; document.getElementById('xxx').nodeValue
    原因是'document.body.childNodes[1]'它指到那个元素我都不知道,呵呵!1