解决了什么问题?
除了IE9之前版本的其它游览器,会将元素间的空格当成文本节点来对待,这样就导致了childNodes和firstChild等属上面的差异,为弥补这个差异,同时不影响DOM规范,W3C通过Element Traversal规范定义了一组新属性。
如下面五个属性:
childElementCount
firstElementChild
lastElementChild
previousElementSibling
nextElementSibling
这样就可避免返回空格形式的文本节点,返回的都是Element类型的元素了
示例:
比如要返回div元素的第一个子节点:
以前的写法:
let divElement = document.getElementsByTagName("div");
let divChild = divElement.firstChild;
而现在我们用用上新定义的属性之后,就可以这样来写了:
let divElement = document.getElementsByTagName("div");
let divChild = divElement.firstElementChild;
作用:
无需担心游览器会返回空格形式的文本节点,轻松得到我们想要的元素节点。