1、childNodes属性:
返回指定元素的子节点集合,包括元素节点和文本节点。
除了IE9和Firefox,其他浏览器都支持通过childNodes[i]获取第i个子节点。
2、children属性:
返回指定元素的子元素集合,只包括元素节点,不包括文本节点。
除了IE9和Firefox,其他浏览器都支持通过children[i]获取第i个子节点。
注意:children在IE中包含注释节点。
3、firstChild属性:
获取指定元素的第一个子节点,可以是元素节点,也可以是文本节点。
问题:若父元素与第一个子元素之间存在空白节点,firstChild获取到的将是空白节点而不是第一个子元素。
解决:使用firstElementChild属性。
问题:IE6/7/8中不支持firstElementChild属性。
解决:使用children[0]属性。
4、firstElementChild属性:
获取指定元素的第一个子元素节点,不会检测到文本节点。
总结:
如果想获取到指定元素的子元素节点,最好使用children方法,childNodes方法及firstChild方法在现代浏览器中都会把空白节点检测出来,所以推荐以后使用children方法来替代childNodes。