Wie man von Elementen mit mehreren Klassen
Sagen, dass ich diese:
<div class="class1 class2"></div>
Wie wähle ich diese div
element?
document.getElementsByClassName('class1')[0].getElementsByClassName('class2')[0]
Nicht funktioniert.
Weiß ich, dass das in jQuery, ist es $('.class1.class2')
, aber ich würde gerne wählen Sie es mit vanilla JavaScript.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist eigentlich sehr ähnlich zu jQuery:
MDN Doc getElementsByClassName
querySelectorAll mit standard-class-Selektoren funktioniert auch für diese.
document.querySelectorAll('.class1, .class2');
.class1
ODER.class2
, während das oben wäre nur zu erfassen, - Elemente mit beide Klassen und in der Tat zu arbeiten. Finden Sie in der Konsole die Ausgabe dieses Tests: jsfiddle.net/0ph1p9p2Als @filoxo gesagt, das Sie verwenden können
document.querySelectorAll
.Wenn Sie wissen, dass es nur ein element mit der Klasse, die Sie suchen, oder Sie daran interessiert sind nur in den ersten ein, die Sie verwenden können:
BTW, während
.class1.class2
zeigt ein element mit beide Klassen.class1 .class2
(man beachte das Leerzeichen) deutet auf eine Hierarchie - und element der Klasseclass2
die in de-element mit der Klasseclass1
:Und wenn Sie erzwingen möchten, abrufen einer direkten Kind, verwenden Sie
>
Zeichen (.class1 > .class2
):Für die gesamten Informationen über Selektoren:
https://www.w3schools.com/jquery/jquery_ref_selectors.asp
html
javascritp code
Die querySelectorAll () - Methode gibt alle Elemente in dem Dokument, das entspricht einem angegebenen CSS-Selektor(s), als statische NodeList-Objekt.
Die NodeList-Objekt repräsentiert eine Sammlung von Knoten. Die Knoten zugegriffen werden kann, die durch index-Nummern. Der index beginnt bei 0.
außerdem erfahren Sie mehr über https://www.w3schools.com/jsref/met_document_queryselectorall.asp
== Danke ==
Okay, dieser code macht genau das, was Sie brauchen:
HTML:
JS:
Hoffe, es hilft! 😉
eigentlich @bazzlebrush 's Antwort und @filoxo 's Kommentar hat mir sehr geholfen.
Ich brauchte, um zu finden, die Elemente, denen die Klasse könnte "zA yO" ODER "zA zE"
Mithilfe von jquery habe ich zuerst das übergeordnete Element auswählen der gewünschten Elemente:
(ein div mit der Klasse ab, die mit 'abc' und Stil != 'display:none')
dann die gewünschten Kinder des Elements:
funktioniert perfekt! Hinweis: Sie müssen nicht zu dokumentieren.querySelector können Sie wie oben passieren in einem vorher ausgewählten Objekt.