jquery, id içindeki sınıf için seçici


94

Aşağıda, my_classöğenin içindeki sınıfı içeren öğeleri nasıl seçmeliyim id = "my_id"?

Öğenin, benim seçmediğim başka bir sınıfa sahip olabileceğini de unutmayın.

<div id = "my_id">
    <span class = "my_class hidden">hi</span>
    <span class = "my_class">hello</span>
</div>

deniyordum

$("#my_id [class*=my_class ]")

Yanıtlar:


155

Sen kullanabilirsiniz sınıf seçici ile birlikte soyundan selektör

$("#my_id .my_class")

Bunu şununla birleştirebilir miyim: ilk (o sınıfın ilk öğesini # my_id içinde almak için)?
jakob.j

1
@ jakob.j$("#my_id .my_class:first")
Arun P Johny

İd sınıf içinde tanımlandığında, sınıf için id yerine $ (". My_class #my_id") gibi aynı şeyi kullanabilir miyim
dhS

48

Basit ol 'sınıfı seçiciyi kullanın.

$('#my_id .my_class')

Elemanın başka sınıflara sahip olup olmadığı önemli değildir. .My_class sınıfına sahiptir ve #my_id içinde bir yerdedir , dolayısıyla bu seçiciyle eşleşecektir.

Performansla ilgili olarak

Göre jQuery seçici performans belgelerinde , böyle ayrı ayrı iki seçiciler kullanmak hızlıdır:

$('#my_id').find('.my_class')

Belgelerin ilgili kısmı şu şekildedir:

Kimlik Tabanlı Seçiciler

// Fast:
$( "#container div.robotarm" );

// Super-fast:
$( "#container" ).find( "div.robotarm" );

.find()Yalnızca kimlik seçimleri kullanılarak işlenir - İlk seçim Sizzle seçici motoru geçmeden ele alınır çünkü yaklaşım hızlıdır document.getElementById()tarayıcıya yerli çünkü son derece hızlı olan.

Seçme No veya sınıf tarafından (diğer şeyler arasında), tek başına bir tarayıcı tarafından sağlanan işlevleri gibi çağıran document.getElementById()bir kullanarak, oysa ki, oldukça hızlı olan soyundan seçici hızlı olsa da, önerilen alternatif daha yavaştır, belirtildiği gibi Sizzle motoru çalıştırır.



2

Ayrıca $( "#container" ).find( "div.robotarm" );
şuna eşittir:$( "div.robotarm", "#container" )


1

Sanırım sadece <span class = "my_class">hello</span>bu unsuru seçmeni istiyorsun, böyle yaptın, Sorunu doğru anladıysam cevap budur,

$("#my_id [class='my_class']").addClass('test');

DEMO


$("#my_id .my_class")daha kısa eşdeğerdir; bu durumda öznitelik seçiciyi kullanmaktan hiçbir şey kazanmazsınız.
doppelgreener

Umarım o da cevabınızla aynı işi yapmıştır, ben cevapladığınız soruyu cevaplarken, cevabı verdiğimden beri soruyu silmediğimi fark etmedim.
Thirumalai murugan
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.