DOM-->子节点和兄弟节点的操作

子节点和兄弟节点的操作

childNodes 属性

只读属性,子节点列表集合

其他浏览器(标准下):包含了文本和元素类型的节点,也会包含非法嵌套的子节点

ie8以下(非标准下): 只包含元素类型的节点,ie7以下不会包含非法嵌套子节点

childNodes只包含一级子节点,不包含后辈孙级以下的节点

  • 1
  • 2
  • 1
  • 2

上面的代码ie8以下, ul.childNodes.length 为2

包含非法嵌套的子节点

  • 1
  • 2
  • 3

children 属性

跟childNodes的区别是,它只包含元素节点

推荐使用, 兼容性更好

firstChild firstElementChild

firstChild属性返回当前节点的第一个子节点,如果当前节点没有子节点,则返回null

firstElementChild属性返回当前节点的第一个Element子节点,如果不存在任何Element子节点,则返回null。

firstChild兼容性问题:

  • 标准下:firstChild会包含文本类型的节点
  • 非标准下:只包含元素节点

firstElemenetChild兼容性问题:

再ie8以下不支持

所以我们最好是用div.children[0]来代替firstElementChild

lastChild lastElementChild

nextSibling nextElementSibling

previousSibling previousElementSibling

你可能感兴趣的:(DOM-->子节点和兄弟节点的操作)