Bir sınıf seçiciyi ve bir öznitelik seçiciyi jQuery ile birleştirme


153

Bir sınıf seçici hem birleştirmek mümkün mü ve jQuery ile bir öznitelik seçicisi?

Örneğin, aşağıdaki HTML verildiğinde:

<TABLE>
  <TR class="myclass" reference="12345"><TD>Row 1</TD></TR>
  <TR class="otherclass" reference="12345"><TD>Row 2</TD></TR>
  <TR class="myclass" reference="12345"><TD>Row 3</TD></TR>
  <TR class="myclass" reference="54321"><TD>Row 4</TD></TR>
</TABLE>

Yalnızca 1. ve 3. satırları seçmek için kullanabileceğim seçici nedir?

Denedim:

$(".myclass [reference=12345]") // returns nothing

$(".myclass, [reference=12345]") // returns all 4 rows (yes, I know the comma means 'or')

Eminim cevabın çok basittir ve jQuery forumlarını ve belgelerini araştırmayı denedim, ancak bunu çözemiyorum. Biri yardım edebilir mi?

Yanıtlar:


297

Onları birleştirin. Kelimenin tam anlamıyla birleştirin ; bunları herhangi bir noktalama işareti olmadan birbirine ekleyin .

$('.myclass[reference="12345"]')

İlk seçiciniz, sınıftaki öğelerde bulunan öznitelik değerine sahip öğeleri arar.
Alan, alt seçici olarak yorumlanıyor .

İkinci seçiciniz, söylediğiniz gibi, öznitelik değerine veya sınıfa veya her ikisine sahip öğeleri arar.
Virgül, çoklu seçici operatörü olarak yorumlanıyor - bu ne anlama geliyorsa (CSS seçicilerinde "operatörler" kavramı yoktur; virgül muhtemelen daha doğru bir şekilde sınırlayıcı olarak bilinir).


1
id de birleştirebilir miyim? bunun gibi demek istiyorum: $ ('. myclass [myid = "6"]')
Rahul Pawar


7

Bu kod da çalışır:

$("input[reference=12345].myclass").css('border', '#000 solid 1px');

1

Bu da işe yarayacak:

$(".myclass[reference='12345']").css('border', '#000 solid 1px');
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.