对于元素间的空格,各浏览器会做出不同的反应,就导致了在使用childNodes和firstChild等属性时的行为不一致,由此,Element Traversal API 为DOM元素添加了以下5个属性。
childElementCount:返回子元素(不包括文本节点和注释)的个数
firstElementChild:指向第一个子元素 ,firstChild的元素版。
lastElementChild:指向最后一个元素,lastChild的元素版。
previousElementSibling:指向前一个同辈元素,previousSibling的元素版。
nextElementSibling:指向后一个同辈元素;nextSibling的元素版。
例如:
元素的遍历:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-widthh, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<p>你瞅啥</p>
<div id="div1">
<a href="javascript:;" class="lits">1111</a>
<a href="javascript:;" class="lits">2222</a>
<a href="javascript:;" class="lits">3333</a>
<a href="javascript:;" class="lits">4444</a>
</div>
<div class="demo">这是段落</div>
<script>
var oDivs=document.querySelector("#div1");
console.log(oDivs.childElementCount);
console.log(oDivs.firstElementCount);
console.log(oDivs.lastElementCount);
console.log(oDivs.previousElementSibling);
console.log(oDivs.nextElementSibling);
</script>
</body>
</html>