ich JavaScript zur Zeit neu bin (ich bin mit jQuery) und ich frage mich, wie ichAuswahl relativ Kind Tags jquery
<Something attribute="first">
<div class="container">
<Something attribute="second" />
<Something attribute="third">
<Something attribute="fourth" />
</Something>
</div>
</Something>
<Something attribute="fifth">
<Something attribute="sixth" />
</Something>
I-Code hatte alle Kinder Something
Tags aus dem folgenden HTML wählen könnte, wie so zu wählen Sie sowohl das Kind Something
Tags
$("Something[attribute='first']").children("Something").each({});
aber wegen des div nicht funktioniert dazwischen. Wie kann ich alle Tags umgehen, die nicht Something
sind, und nur die Elemente auswählen, die eine Ebene tief sind, wenn Sie alle Tags entfernen, die nicht Something
sind? Also, wenn ich die Kinder des Something
Tags mit Attribut first
abfragen möchte, würde ich second
und third
(nicht fourth
oder sixth
) bekommen. Ebenso, wenn ich fifth
Abfrage würde ich sixth
HINWEIS Leider bekommen für darüber unklar zu sein, aber ich will nur die Something
Tags eine Ebene nach dem Something
Tag, deren Kinder ich zu finden versuche. So möchte ich beispielsweise in dem obigen HTML-Code nicht, dass die Abfrage das Something
-Tag mit dem Attribut fourth
zurückgibt. Also im Wesentlichen, wenn Sie die Tags zwischen jedem anderen Something
Tag entfernen Ich möchte die Tags, die nur eine Ebene tief von der in Frage sind.
HINWEIS Es können auch andere Tags werden zwischen den Something
Tags, nicht nur die eine div
. Zum Beispiel kann das obige sein
<Something attribute="first">
<div class="container">
<div class="container">
<Something attribute="second" />
<Something attribute="third">
<Something attribute="fourth" />
</Something>
</div>
</div>
</Something>
<Something attribute="fifth">
<div>
<div>
<Something attribute="sixth" />
</div>
</div>
</Something>
und die gleichen Auswahlkriterien würden gelten. So würden die Ergebnisse
first -> [second, third]
third -> [fourth]
[fifth] -> [sixth]
Eine rekursive Lösung in Pseudo-Code für das, was ich würde sein wollen
function get_immediate_children_for(element, array_of_children) {
$(element).children().each(function() {
if (this.tagName == "SOMETHING") {
array_of_children.push(this);
}
else {
get_immediate_children_for(this, array_of_children);
}
});
}
und Sie würden dies nennen, wie so
var array_of_children = get_immediate_children_for($("Something[attribute='first']"));
Es tut mir Leid! Ich war in meiner Frage nicht klar. Ich aktualisierte es mit einer Notiz – Curious
Ich aktualisierte die Frage erneut! Ich glaube nicht, dass ich am Anfang überhaupt klar war :( – Curious