/ Published in: JavaScript
URL: http://developer.mozilla.org/en/docs/Whitespace_in_the_DOM
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.
Expand |
Embed | Plain Text
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; }
You need to login to post a comment.
