1. Node.prototype.hasChildNodes();

2. Node.prototype.firstChilds();

3. Node.prototype.nextSibling();

function DOMComb(parent, callback) { 
  if (parent.hasChildNodes()) { 
    for (var node = parent.firstChild; node; node = node.nextSibling) { 
      DOMComb(node, callback); 
    } 
  } 
  callback(parent); 
} 
 
// 用法 
DOMComb(document.body, console.log)

 

这里需要注意for循环的写法, 它的作用是循环所有子节点, 对每个字节点都使用DOMComb()函数. 第一个参数表示从第一个子节点开始遍历, 第二个参数表示这个节点不能为空(null / undefined等) , 第三个参数表示将下一个子节点赋值个node. 这种写法不常见, 但挺巧妙的.

发布评论

分享到:

IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

怎样判断当前节点是否有子节点讲解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。