2011-10-21 2 views
7

bazı türleri dahil olmak üzere: Ben tüm diğer hariç, jQuery, belirli h2 endeksine sahip belirlemek mümkün istiyorumelemanın jquery indeksini al - Keşke bu gibi bazı kod var elemanın

<h2 id="a">Header</h2> 
<table> 
    <tr> 
    <td>test</td> 
    </tr> 
</table> 

<h2 id="zzz">Header</h2> 
<table> 
    <tr> 
    <td>test</td> 
    </tr> 
</table> 

<h2 id="123">Header</h2> 
<table> 
    <tr> 
    <td>test</td> 
    </tr> 
</table> 

elemanlar, sadece h2 elementleri ile ilgilidir. Örneğin, eğer öğenin indeksini id = "123" ile alsaydım, ağacın üçüncü h2'si olduğu için 3'e dönecekti.

$('#123').index('h2'); 

Ama işe görünmüyor:

Bu denedim. Sayımdaki DOM yapısının aynı seviyesindeki diğer öğeleri de hesaba katar.

+1

http://jsfiddle.net/2dg2q/ "123" kimlik özelliği geçerli bir değer olmadığını unutmayın. – jbabey

cevap

17

Sen verilmiş elemanın endeksini hesaplamak için index(<element>) kullanmak sonra, elementlerin koleksiyonu belirtmek gerekir. Not: Bağımsız değişken bir jQuery veya DOM nesnesi olmalıdır. Dizeler çalışmıyor. JavaScript endeksleri olduğunu
Not sıfır tabanlı, yani 2 bir endeks aslında üçüncü elemanı anlamına gelir.

$("#123").parent().children('h2').index($('#123')) 

Fiddle:

+1

bu deha !!, bir ödül gerekiyor ve onlar bunu – Fanckush

+1

mükemmel cevabı yapmak için bir haber yolunu oluşturmalıdır tahmin! –

+0

https://jsfiddle.net/6ksujand/ Bu cevap ne kadar iyi olduğunu gösteren sadece benim örnek – Squirrl