Ich habe folgendes:Wie mache ich diese Schleife alle Kinder rekursiv?
for (var i = 0; i < children.length; i++){
if(hasClass(children[i], "lbExclude")){
children[i].parentNode.removeChild(children[i]);
}
};
ich es eine Schleife durch alle Kinder Kinder, etc. (nicht nur die oberste Ebene) möchten. Ich fand diese Linie, die das zu tun scheint:
for(var m = n.firstChild; m != null; m = m.nextSibling) {
Aber ich bin unklar, wie ich auf das aktuelle Kind verweisen, wenn ich diesen Schalter zu machen? Ich müsste nicht mehr die Indexposition des Kindes klären. Irgendwelche Vorschläge?
Danke!
Update:
Ich bin jetzt die folgende Verwendung nach Anregungen zu beantworten. Ist das der richtige/effizienteste Weg?
function removeTest(child) {
if (hasClass(child, "lbExclude")) {
child.parentNode.removeChild(child);
}
}
function allDescendants(node) {
for (var i = 0; i < node.childNodes.length; i++) {
var child = node.childNodes[i];
allDescendants(child);
removeTest(child);
}
}
var children = temp.childNodes;
for (var i = 0; i < children.length; i++) {
allDescendants(children[i]);
};
Wissen Sie, wie viele Arrays Sie hier verschachtelt haben? – thecoshman
Einfach mit dem Namen 'm':' m.parentNode.removeChild (m) '. Es kann jedoch ein Problem geben, da das Entfernen eines Knotens und das anschließende "nextSibling" (in der for-Klausel) nicht wie vorgesehen funktioniert. – Dirk
@coshman, die Anzahl der verschachtelten Kinder wird variabel sein. – Matrym