javascript 节点遍历函数
javascript 节点遍历函数
发布时间:2016-12-30 来源:查字典编辑
摘要:火狐官网上找到的一组函数,相当于treeWalker,有了它可以方便地在IE实现TraversalAPI2的所有功能(nextElement...

火狐官网上找到的一组函数,相当于treeWalker,有了它可以方便地在IE实现Traversal API 2的所有功能(nextElementSibling,previousElementSibling,firstElementChild,lastElementChild,children)These functions let you find the next sibling, previous sibling, first child, and last child of a given node (element). What makes them unique is that they safely ignore whitespace nodes so you get the real node you're looking for each time.

复制代码 代码如下:

function is_all_ws(nod) { return !(/[^tnr ]/.test(nod.data)); }

function is_ignorable(nod) { return (nod.nodeType == 8) || ((nod.nodeType == 3) && is_all_ws(nod)); }

function node_before(sib) {

while ((sib = sib.previousSibling)) {

if (!is_ignorable(sib)) return sib;

}

return null;

}

function node_after(sib) {

while ((sib = sib.nextSibling)) {

if (!is_ignorable(sib)) return sib;

}

return null;

}

function first_child(par) {

var res = par.firstChild;

while(res) {

if(!is_ignorable(res)) return res;

res = res.nextSibling;

}

return null;

}

function last_child(par) {

var res = par.lastChild;

while(res) {

if(!is_ignorable(res)) return res;

res = res.previousSibling;

}

return null;

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类