Saya ingin memilih semua elemen yang memiliki dua kelas a
dan b
.
<element class="a b">
Jadi, hanya elemen yang memiliki kedua kelas.
Ketika saya menggunakannya $(".a, .b")
memberi saya persatuan, tetapi saya ingin persimpangan.
jquery
jquery-selectors
Mladen
sumber
sumber
Jawaban:
Jika Anda ingin mencocokkan hanya elemen dengan kedua kelas (persimpangan, seperti logika AND), cukup tulis selektor bersama - sama tanpa spasi di antaranya:
Pesanan tidak relevan, jadi Anda juga dapat menukar kelas:
Jadi, untuk mencocokkan
div
elemen yang memiliki IDa
dengan kelasb
danc
, Anda akan menulis:(Dalam praktiknya, Anda kemungkinan besar tidak perlu mendapatkan yang spesifik, dan ID atau pemilih kelas dengan sendirinya biasanya cukup:.
$('#a')
)sumber
b
danc
ditambahkan secara dinamis, dan Anda hanya ingin memilih elemen jika memiliki kelas tersebut..a .b
mencari elemen dengan kelasb
yang merupakan turunan dari elemen dengan kelasa
. Jadi sesuatu sepertidiv a
hanya akan mengembalikana
elemen yang ada di dalamdiv
elemen.Anda dapat melakukan ini menggunakan
filter()
fungsi:sumber
.a
dan perlu menyaring beberapa kali berdasarkan kelas arbitrer yang berbeda yang juga milik.a
set asli .Untuk kasus ini
Anda harus menempatkan spasi di antara
.a
dan.b.c
sumber
$('.a .c.b')
juga akan berfungsi?$('.a > element')
Masalah yang Anda hadapi, adalah bahwa Anda menggunakan
Group Selector
, sedangkan Anda harus menggunakanMultiples selector
! Untuk lebih spesifik, Anda menggunakan$('.a, .b')
sedangkan Anda harus menggunakan$('.a.b')
.Untuk informasi lebih lanjut, lihat ikhtisar tentang berbagai cara untuk menggabungkan penyeleksi di sini!
Pemilih Grup: ","
Pilih semua
<h1>
elemen DAN semua<p>
elemen DAN semua<a>
elemen:Pemilih berganda: "" (tanpa karakter)
Pilih semua
<input>
elementype
text
, dengan kelascode
danred
:Pemilih Keturunan: "" (spasi)
Pilih semua
<i>
elemen di dalam<p>
elemen:Pemilih Anak: ">"
Pilih semua
<ul>
elemen yang merupakan anak langsung dari suatu<li>
elemen:Selector Adjacent Adjacent: "+"
Pilih semua
<a>
elemen yang ditempatkan segera setelah<h2>
elemen:Pemilih Sibling Umum: "~"
Pilih semua
<span>
elemen yang merupakan saudara<div>
elemen:sumber
sumber
Sebut saja kasus lain dengan elemen:
Misalnya
<div id="title1" class="A B C">
Ketik saja:
$("div#title1.A.B.C")
sumber
Solusi JavaScript vanila: -
document.querySelectorAll('.a.b')
sumber
Untuk kinerja yang lebih baik, Anda dapat menggunakan
Ini akan melihat hanya melalui elemen div alih-alih melangkah melalui semua elemen html yang Anda miliki di halaman Anda.
sumber
Pemilih Grup
Menjadi ini:
Jadi, dalam kasus Anda, Anda telah mencoba pemilih grup sedangkan persimpangannya
alih-alih gunakan ini
sumber
Anda tidak perlu
jQuery
untuk iniDi dalam
Vanilla
kamu dapat melakukan:sumber
kode Anda
$(".a, .b")
akan berfungsi untuk beberapa elemen di bawah ini (pada saat yang sama)jika Anda ingin memilih elemen yang memiliki a dan b kedua kelas seperti
<element class="a b">
daripada menggunakan js tanpa komasumber
Anda dapat menggunakan
getElementsByClassName()
metode untuk apa yang Anda inginkan.Ini adalah solusi tercepat juga. Anda dapat melihat patokan tentang itu di sini .
sumber
var elem = document.querySelector (". ab");
sumber