Katakanlah saya punya ini:
<div class="class1 class2"></div>
Bagaimana cara memilih div
elemen ini ?
document.getElementsByClassName('class1')[0].getElementsByClassName('class2')[0]
Itu tidak berhasil.
Saya tahu itu, di jQuery $('.class1.class2')
, tapi saya ingin memilihnya dengan vanilla JavaScript.
javascript
class
element
Nathan Prometheus
sumber
sumber
DAN (kedua kelas)
ATAU (setidaknya satu kelas)
XOR (satu kelas tetapi tidak yang lain)
NAND (bukan kedua kelas)
NOR (bukan salah satu dari dua kelas)
sumber
querySelectorAll dengan penyeleksi kelas standar juga berfungsi untuk ini.
sumber
document.querySelectorAll('.class1, .class2');
.class1
ATAU.class2
, sedangkan yang di atas hanya akan menangkap elemen dengan kedua kelas dan sebenarnya berfungsi. Lihat keluaran konsol dari tes ini: jsfiddle.net/0ph1p9p2Seperti yang dikatakan @filoxo, Anda dapat menggunakan
document.querySelectorAll
.Jika Anda tahu bahwa hanya ada satu elemen dengan kelas yang Anda cari, atau Anda hanya tertarik pada yang pertama, Anda dapat menggunakan:
BTW, while
.class1.class2
menunjukkan elemen dengan kedua kelas,.class1 .class2
(perhatikan spasi) menunjukkan hierarki - dan elemen dengan kelasclass2
yang ada di dalam elemen en dengan kelasclass1
:Dan jika Anda ingin memaksa mengambil turunan langsung, gunakan
>
tanda (.class1 > .class2
):Untuk seluruh informasi tentang penyeleksi:
https://www.w3schools.com/jquery/jquery_ref_selectors.asp
sumber
html
kode javascritp
Metode querySelectorAll () mengembalikan semua elemen dalam dokumen yang cocok dengan pemilih CSS yang ditentukan, sebagai objek NodeList statis.
Objek NodeList merepresentasikan kumpulan node. Node dapat diakses dengan nomor indeks. Indeks dimulai dari 0.
juga pelajari lebih lanjut tentang https://www.w3schools.com/jsref/met_document_queryselectorall.asp
== Terima Kasih ==
sumber
Oke kode ini melakukan apa yang Anda butuhkan:
HTML:
JS:
Semoga membantu! ;)
sumber
sebenarnya jawaban @bazzlebrush dan komentar @filoxo banyak membantu saya.
Saya perlu menemukan elemen di mana kelas bisa menjadi "zA yO" ATAU "zA zE"
Menggunakan jquery, saya pertama-tama memilih induk dari elemen yang diinginkan:
(div dengan kelas yang dimulai dengan 'abc' dan style! = 'display: none')
kemudian anak yang diinginkan dari elemen itu:
bekerja dengan sempurna! Perhatikan bahwa Anda tidak perlu melakukan document.querySelector, Anda bisa seperti di atas meneruskan objek yang telah dipilih sebelumnya.
sumber