Firefox official web found a set of functions, equivalent to Treewalker, with it can be easily implemented in IE traversal API 2 of all the functions (nextelementsibling,previouselementsibling, Firstelementchild,lastelementchild,children) These functions let you find the next sibling, previous sibling, the And last child of a given node (element). What makes them the unique is-that they safely ignore whitespace-so-you-get-real node-for-each time.
Copy Code code as follows:
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)); The
Function Node_before (SIB) {
while ((Sib = sib.previoussibling)) {
if (!is_ignorable)) 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;
}