请问javascript节点换行符的问题?
<html>
<head>
<title></title>
</head>
<body>
<ul id="222" onclick="alert(document.body.childNodes[2].nodeName)">
<li id="111">sss</li>
</ul>
<button></button>
</body>
</html>
为什么ul后面#text文本节点,而button后面就有#text文本节点?
我用childNodes[2].nodeName查了,为什么在</button>后面会有#text文本节点,请问一下为什么ul后面不会生成一个文本节点,而</button>后面会有一个#text文本节点.第二个问题,</button>后面的#text文本节点是一个换行符还是一个空文本呀?

解决方案 »

  1.   

    IE中的. 
    试了几个:input型和select都会附加空文本节点 
    但是:table和ul则不附加. 
    但是普通的回车的确是不会生成文本节点的. 
    至于为什么,这个要问写IE的家伙了... 我用的是IE6推荐你装个IEInspector看看
    因为那个自动附加的文本节点是源代码看不出来的.
      

  2.   

    其实是HTML语法解析的规则所致
    </button>后面的#text文本节点其实是</button>这里的内容,包括换行</body>,因为HTML不是靠行解析的, 而是标记解析的
    至于<ul>后面没有#text文本节点,是因为标准<ul></ul>中不含文本,只有在其子标记li/ul等有