为什么空体标签中有两个鬼节点?

时间:2017-06-26 11:41:57

标签: javascript html dom

我编写了一个计算DOM中节点总数的函数。

var nodeCount = 1; 
//1 for the first node, assuming it IS a node
function traverseDom(currentNode) {
  if(nodeCount == 1 || !(currentNode.nextSibling)){
    if(currentNode.firstChild){
    nodeCount += 1;
//console.log(currentNode.firstChild.nodeType);
    traverseDom(currentNode.firstChild);
    }
  }else{
     if(currentNode.nextSibling){
      nodeCount += 1;
      traverseDom(currentNode.nextSibling);
     }
  }
return nodeCount;
}
console.log(traverseDom(document.getElementsByTagName("body")[0]));

该函数将根节点作为参数,从该点遍历DOM并返回节点数。它适用于其他节点但是当我传递body元素时,即使标记之间没有空格,该函数也总是返回3.这两个不可见节点来自哪里? 这是HTML结构:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body></body>
</html>

0 个答案:

没有答案