JQuery

2011-06-05 6 views
100

ile sınıf seçiciyi ve öznitelik seçiciyi birleştirme ve sınıf seçicilerinin jQuery ile bir öznitelik seçicisini birleştirmesi mümkün mü?JQuery

<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> 

Ben satırları 1 ve sadece 3 seçmek için kullanabileceğiniz seçici ne olurdu:

Örneğin

aşağıdaki HTML verilen?

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

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

Cevabın çok basit eminim ve ben jQuery forumları ve belgeleri arama denedi ama bunu anlamaya görünüyor olamaz:

denedim. Biri yardım edebilir mi?

cevap

201

Bunları birleştirin. Tam anlamıyla ,'u birleştirir; bunlara herhangi bir noktalama işareti olmadan ekleyin.

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

İlk seçiciniz, sınıf öğelerinde bulunan özellik değeri olan öğeleri arar. Bu alan descendant selector olarak yorumlanıyor.

İkinci seçiciniz, dediğiniz gibi, özellik değerine sahip olan öğeleri veya sınıfı veya her ikisini de arar.
Virgül, multiple selector işleci olarak yorumlanıyor - bu ne anlama geliyorsa (CSS seçicileri "operatörler" kavramına sahip değil; virgül, muhtemelen daha doğru bir sınırlayıcı olarak bilinir).

+1

ben de kimliği birleştirebilirsiniz? Bu gibi demek istiyorum: $ ('. myclass [myid = "6"]') –

+0

Teşekkürler cevap benim için yararlıdır .. –

+0

Ahh uzay ... –

15

Sadece boşluğu kaldırmanız gerektiğini düşünüyorum. yani

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

burada http://jsfiddle.net/xXEHY/

6

Bu kod, bir keman de var çalışır:

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