2010-07-30 21 views
9
<ul> 
    <li>No</li> 
    <li>Yes</li> 
    <li>No</li> 
</ul> 

//demostration purpose 
$('ul').get(2).text(); 


//output = Yes 

Listedeki belirli bir öğeye erişmenin en iyi yolu nedir? ve bunu bir seçici olarak mı kullanıyorsunuz?jquery indekste bir listede bulun

cevap

19

Sen .eq() veya :eq() liste halinde jQuery nesnesini almak için kullanabilirsiniz:

$('ul li').eq(1).text(); 
//or: 
$('ul :eq(1)').text(); 

You can try a demo here. .get()'u aldığınızda, herhangi bir jQuery işlevi olmayan bir DOM öğesi alırsınız. Bunların her ikisinin de 0 tabanlı olduğunu unutmayın, örneğinizde "Evet" e sahip olmanız için 1 gerekir.

örneğin :lt() (daha azını-endeksi), :gt() (büyüktür indeksi), :first, :last ve çeşitli diğerleri için, aynı zamanda basic filters you may be interested in diğer bulunmaktadır.

seçici
+1

@Andy - Benim örnek sayfasında fark oldu, sadece 'n'inci-çocuk (n)' Öyle bir sıfır tabanlı numarasını kabul etmiyor :) –

+0

uyandım Her ikisini karıştırmak ve iki kez kontrol etmek için kullanılır. Gerçekten, bu tutarsızlık için spec'ın hatası. Her neyse, sadece + 1'imi haklı çıkarmak için düzenledim: p –

+0

@Andy - Anlaştık, şunu düşünüyorum: nth-child() 'bu noktada kırmızı başlı bir üvey çocuk, aslında her gün pratikte çok nadiren kullanırım. yine de kullanım. Belki bir kez IE7 * ve * IE8 desteğini düşürdüğümüzde (zaten 6, wooohoo düştü!) CSS'de bir şey kullanmaya başlayabilirim, ama jQuery'de çok yararlı olmamasını buldum. –

1

Kullanım :eq filtre :

$('ul li:eq(0)').text(); // gets first li 
$('ul li:eq(1)').text(); // gets second li 
$('ul li:eq(2)').text(); // gets third li 
// and so on 
+0

bir dakika fark – Prabs

İlgili konular