childNodes 属性,标准的,它返回指定元素的子元素集合,包括HTML节点,所有属性,文本。可以通过nodeType来判断是哪种类型的节点,只有当nodeType==1时才是元素节点,2是属性节点,3是文本节点。
当节点前有换行,如下左文本框:

需要注意:
对于以上2中格式,同样一段代码如下:
var y=document.getElementsByTagName("LI")[0];
x.innerHTML=y.parentNode.childNodes.length;
在IE8下,左右两个文本,都是返回值为2;
在chrome和Firefox下,左边文本,返回值为5.右边文本,返回值为2;
如果要获取某个节点的内容,最好不要直接使用下标的方式,如x.innerHTML=y.parentNode.childNodes[1].innerHTML;,最好采取的方法有2种。
方法一:利用nodeType先判断下节点类型,代码参考如下:

方法二:children 属性,非标准的,它返回指定元素的子元素集合。经测试,它只返回HTML节点,甚至不返回文本节点。y.parentNode.children.length;返回的值在IE8、chrome和Firefox下都是2。
浙公网安备 33010602011771号