浅谈childNodes和children以及firstChild和firstElementChild

xiaoxiao2021-02-28  86

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。

 

转载请注明原文地址: https://www.6miu.com/read-57380.html

最新回复(0)