• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Rekursive Ermittlung aller Child-Elemente eines Parent

Binary91

Neues Mitglied
Hallo zusammen,

eigentlich schildert der Titel schon exakt mein Vorhaben.
Ich möchte eine Funktion erstellen, mit der ich anhand eines gegebenen Parent-Objekts und definierter Tagform/Klasse alle passenden Child-Elemente erhalte.

Das Problem hierbei ist, dass sich die Child-Elemente ja nach dem Schneeball-Prinzip baumartig massiv verzweigen können.

Ich bin mir sicher, dass ich nach ewiger Denkarbeit und stundenlangem Tüfteln eine solche rekursive Schleife umständlich und ineffizient zusammenbasteln könnte, allerdings dachte ich, dass hier vielleicht jemand schneller einen geeigneten Algo parat haben könnte, den er mir vllt. gern zur Verfügung stellen würde?

PS:
Code:
parent.getElementsByTagName("*");
würde mir zwar alle Elemente liefern, allerdings fehlte mir dann die Hirarchie und ich hätte eine Ebene mit allen Elementen...

Vielen Dank bereits vorab für eure Hilfe.

LG Binary
 
Zuletzt bearbeitet:
Werbung:
Was genau willst du denn zählen, DMO Nodes, Elemente mit einer bestimmten Klasse, ... ?
Ich gebe der Funktion das Parent, sowie die Spezifikation der zu findenden Children (Tag-Name und Klasse).
Ich suche also einen Algo, der mir innerhalb eines Parent alle Children mit Subchildren und Sub[n]..children liefert, die den angegebenen Tag-Namen sowie die angegebene Klasse liefern.
Das allein ließe sich ja gut über getElementsByTagName und einer Filterschleife realisieren, allerdings ginge dabei die Hirarchie verloren. Bei einer Rekursion könnte ich nebenher die Hirarchie protokollieren, sodass ich später die Children in Subgruppen klassifizieren kann.

Weißt du, was ich meine?
 
Werbung:
Code:
<div class="foo">
    <div class="bar">
        <div class="bar"></div>
        <div class="bar">
            <div class="bar"></div>
        </div>
    </div>
</div>
<div class="baz">
    <div class="bar"></div>
</div>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
    var bar = $('.foo').find('.bar').length;
    var baz = $('.baz').find('.bar').length;
    console.log(bar);
    console.log(baz);
</script>
 
Werbung:
Zurück
Oben