Wie kann ich die Linkelemente nur des übergeordneten Elements <ul>
aus einer solchen Liste auswählen ?
<ul>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a>
<ul>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
</ul>
</li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
Also in CSS ul li a
, aber nichtul li ul li a
Vielen Dank
jquery
html
css
css-selectors
Erstaunen
quelle
quelle
ul.find(">li");
Wenn Sie den Knoten "ul" als JQuery-Objekt in der Variablen ul haben.Sobald Sie die anfängliche ul haben, können Sie die child () -Methode verwenden, die nur die unmittelbaren untergeordneten Elemente des Elements berücksichtigt. Wie @activa hervorhebt, besteht eine Möglichkeit, das Stammelement einfach auszuwählen, darin, ihm eine Klasse oder eine ID zu geben. Im Folgenden wird davon ausgegangen, dass Sie eine Root-Ul mit der ID haben
root
.quelle
$('ul').first().children('li')
kann auch verwendet werdenWie in anderen Antworten angegeben, besteht die einfachste Methode darin, das Stammelement (anhand der ID oder des Klassennamens) eindeutig zu identifizieren und den direkten absteigenden Selektor zu verwenden.
Ich bin jedoch auf diese Frage gestoßen, als ich nach einer Lösung gesucht habe, die mit unbenannten Elementen in unterschiedlichen Tiefen des DOM funktioniert .
Dies kann erreicht werden, indem jedes Element überprüft wird und sichergestellt wird, dass die Liste der übereinstimmenden Elemente kein übergeordnetes Element enthält. Hier ist meine Lösung , eingewickelt in einen jQuery-Selektor 'topmost'.
Auf diese Weise lautet die Lösung für den ursprünglichen Beitrag:
Komplette jsFiddle finden Sie hier .
quelle
:topmost
- try using erheblich verbessern.parentElement.closest(selector)
. Wie immer, IE + Rand die einzigen sind , nicht , sie zu unterstützen> :-( so ist hier ein polyfill pastebin.com/JNBk77VmEinfach können Sie dies verwenden ..
Siehe Beispiel: https://codepen.io/gmkhussain/pen/XzjgRE
quelle
Möglicherweise möchten Sie dies versuchen, wenn die Ergebnisse immer noch an Kinder weitergegeben werden. In vielen Fällen gilt JQuery weiterhin für Kinder.
Mit dieser Methode: E> F Entspricht jedem F-Element, das einem Element E untergeordnet ist.
Weist JQuery an, nur nach expliziten untergeordneten Elementen zu suchen. http://www.w3.org/TR/CSS2/selector.html
quelle
Sie können auch verwenden,
$("ul li:first-child")
um nur die direkten Kinder des UL zu erhalten.Ich stimme jedoch zu, dass Sie eine ID oder etwas anderes benötigen, um die Haupt-UL zu identifizieren, andernfalls werden nur alle ausgewählt. Wenn Sie einen Div mit einem Ausweis um die UL hätten, wäre das am einfachsten
$("#someDiv > ul > li")
quelle
:first-child
. Dadurch wird der "Ersteli
von jedemul
" ausgewählt. Der ursprüngliche Beitrag verlangte nach "jedemli
von Anfang anul
".Versuche dies:
quelle
Ich hatte einige Probleme mit verschachtelten Klassen aus jeder Tiefe, also habe ich das herausgefunden. Es wird nur die erste Ebene eines enthaltenden Jquery-Objekts ausgewählt:
quelle
1
Es gibt wahrscheinlich viele andere Möglichkeiten
quelle
das zweite .form-Element auf Baumebene untergeordnetes Element aus dem .add_to_cart
quelle