Sagen Sie, ich habe das:
<div class="class1 class2"></div>
Wie wähle ich dieses div
Element aus?
document.getElementsByClassName('class1')[0].getElementsByClassName('class2')[0]
Das funktioniert nicht.
Ich weiß, dass es in jQuery so ist $('.class1.class2')
, aber ich möchte es mit Vanille-JavaScript auswählen.
javascript
class
element
Nathan Prometheus
quelle
quelle
querySelectorAll mit Standardklassenselektoren funktioniert auch hierfür.
quelle
document.querySelectorAll('.class1, .class2');
.class1
ODER erfassen.class2
, während der obige nur Elemente mit beiden Klassen erfassen würde und tatsächlich funktioniert. Siehe die Konsolenausgabe dieses Tests: jsfiddle.net/0ph1p9p2UND (beide Klassen)
ODER (mindestens eine Klasse)
XOR (eine Klasse, aber nicht die andere)
NAND (nicht beide Klassen)
NOR (keine der beiden Klassen)
quelle
Wie @filoxo sagte, können Sie verwenden
document.querySelectorAll
.Wenn Sie wissen, dass es nur ein Element in der gesuchten Klasse gibt oder Sie nur an der ersten interessiert sind, können Sie Folgendes verwenden:
Übrigens, während
.class1.class2
ein Element mit beiden Klassen angibt.class1 .class2
(beachten Sie das Leerzeichen), gibt es eine Hierarchie an - und ein Element mit einer Klasse,class2
die sich in einem Element mit Klasse befindetclass1
:Wenn Sie das Abrufen eines direkten untergeordneten Elements erzwingen möchten, verwenden Sie
>
sign (.class1 > .class2
):Für vollständige Informationen zu Selektoren:
https://www.w3schools.com/jquery/jquery_ref_selectors.asp
quelle
html
Javascritp-Code
Die querySelectorAll () -Methode gibt alle Elemente im Dokument, die mit einem oder mehreren angegebenen CSS-Selektoren übereinstimmen, als statisches NodeList-Objekt zurück.
Das NodeList-Objekt repräsentiert eine Sammlung von Knoten. Auf die Knoten kann über Indexnummern zugegriffen werden. Der Index beginnt bei 0.
Erfahren Sie auch mehr über https://www.w3schools.com/jsref/met_document_queryselectorall.asp
== Danke ==
quelle
Okay, dieser Code macht genau das, was Sie brauchen:
HTML:
JS:
Ich hoffe es hilft! ;)
quelle
Eigentlich hat mir die Antwort von @bazzlebrush und der Kommentar von @filoxo sehr geholfen.
Ich musste die Elemente finden, bei denen die Klasse "zA yO" ODER "zA zE" sein könnte.
Mit jquery wähle ich zuerst das übergeordnete Element der gewünschten Elemente aus:
(ein div mit einer Klasse, die mit 'abc' und style beginnt! = 'display: none')
dann die gewünschten Kinder dieses Elements:
funktioniert perfekt! Beachten Sie, dass Sie document.querySelector nicht ausführen müssen. Sie können wie oben beschrieben ein vorgewähltes Objekt übergeben.
quelle