İki sınıf olan tüm unsurları seçmek istediğiniz a
ve b
.
<element class="a b">
Yani, sadece her iki sınıfa da sahip olan unsurlar .
Kullandığımda $(".a, .b")
bana birliği veriyor, ama kavşağı istiyorum.
İki sınıf olan tüm unsurları seçmek istediğiniz a
ve b
.
<element class="a b">
Yani, sadece her iki sınıfa da sahip olan unsurlar .
Kullandığımda $(".a, .b")
bana birliği veriyor, ama kavşağı istiyorum.
Yanıtlar:
Yalnızca her iki sınıftaki öğeleri (mantıksal AND gibi bir kavşak) eşleştirmek istiyorsanız , aralarında boşluk olmadan seçicileri birlikte yazın :
$('.a.b')
Sipariş alakalı değil, bu yüzden sınıfları da değiştirebilirsiniz:
$('.b.a')
Bir maç için Yani div
bir kimliği vardır elemanı a
sınıflarıyla b
ve c
şu yazılır:
$('div#a.b.c')
(Uygulamada, büyük olasılıkla bu özelliğe ihtiyacınız yoktur ve genellikle bir kimlik veya sınıf seçici genellikle yeterlidir $('#a')
.)
b
ve c
dinamik olarak eklenmişse yararlı olabilir ve öğeyi yalnızca bu sınıflara sahipse seçmek isteyebilirsiniz.
.a .b
sınıf elemanlarının arar b
sınıfı ile bir elemanın soyundan a
. Yani böyle bir şey div a
sadece bir elemanın içindekia
elemanları döndürür . div
Bu filter()
işlevi kullanarak yapabilirsiniz :
$(".a").filter(".b")
.a
ve orijinal .a
kümeye ait birden fazla kez tabanlı farklı rasgele sınıfları filtrelemeniz gerekiyorsa da daha etkilidir .
Dava için
<element class="a">
<element class="b c">
</element>
</element>
.a
Ve arasına boşluk bırakmanız gerekir..b.c
$('.a .b.c')
$('.a .c.b')
de çalışır mı?
$('.a > element')
Sahip olduğunuz sorun, a kullanmanız Group Selector
, oysa a Multiples selector
! Daha açık olmak gerekirse, $('.a, .b')
kullanmalısınız $('.a.b')
.
Daha fazla bilgi için, aşağıdaki seçicileri birleştirmenin farklı yollarına genel bakış konusuna bakın!
Tüm <h1>
öğeleri VE tüm <p>
öğeleri VE tüm <a>
öğeleri seçin:
$('h1, p, a')
Sınıflarının ve <input>
öğelerinin tüm öğelerini seçin :type
text
code
red
$('input[type="text"].code.red')
<i>
Öğelerin içindeki tüm öğeleri seçin <p>
:
$('p i')
<ul>
Bir <li>
öğenin hemen alt öğesi olan tüm öğeleri seçin :
$('li > ul')
<a>
Öğelerden hemen sonra yerleştirilen tüm öğeleri seçin <h2>
:
$('h2 + a')
<span>
Öğelerin kardeşleri olan tüm öğeleri seçin <div>
:
$('div ~ span')
$('.a .b , .a .c').css('border', '2px solid yellow');
//selects b and c
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="a">a
<div class="b">b</div>
<div class="c">c</div>
<div class="d">d</div>
</div>
Vanilya JavaScript çözümü: -
document.querySelectorAll('.a.b')
Grup Seçici
body {font-size: 12px; }
body {font-family: arial, helvetica, sans-serif;}
th {font-size: 12px; font-family: arial, helvetica, sans-serif;}
td {font-size: 12px; font-family: arial, helvetica, sans-serif;}
Bu olur:
body, th, td {font-size: 12px; font-family: arial, helvetica, sans-serif;}
Yani sizin durumunuzda grup seçiciyi denediniz, oysa bir kavşak
$(".a, .b")
bunun yerine bunu kullan
$(".a.b")
İstediğiniz şey için getElementsByClassName()
yöntem kullanabilirsiniz .
var elems = document.getElementsByClassName("a b c");
elems[0].style.color = "green";
console.log(elems[0]);
<ul>
<li class="a">a</li>
<li class="a b">a, b</li>
<li class="a b c">a, b, c</li>
</ul>
Bu da en hızlı çözüm. burada bununla ilgili bir kıyaslama görebilirsiniz .