Posted in Javascript onMarch 28, 2010
火狐官网上找到的一组函数,相当于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 !(/[^\t\n\r ]/.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 节点遍历函数
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@