2011-10-21 9 views
7

ho qualche codice come questo:Ottenere indice jquery di elemento - solo tra cui alcuni tipi di elemento

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

voglio essere in grado di determinare, con jQuery, l'indice di una data h2, escludendo tutti gli altri elementi, quindi si riferiscono solo agli elementi h2. Ad esempio, se ho ottenuto l'indice dell'articolo con id = "123", restituirebbe 3, poiché è il terzo h2 nell'albero.

Ho provato questo:

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

Ma non sembra funzionare. Conta ancora gli altri elementi allo stesso livello della struttura DOM nel conteggio.

+1

tenere a mente che "123" non è un valore valido per l'attributo ID. – jbabey

risposta

17

È necessario specificare la raccolta di elementi, quindi utilizzare index(<element>) per ottenere l'indice dell'elemento specificato. Nota: l'argomento deve essere un oggetto jQuery o DOM. Le stringhe non funzionano.
Si noti che gli indici JavaScript sono a base zero, quindi un indice di 2 significa in realtà il terzo elemento .

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

Fiddle: http://jsfiddle.net/2dg2q/

+1

questo è genio !!, hai bisogno di un premio, e credo che dovrebbero creare un modo per farlo in modo perfetto – Fanckush

+1

risposta perfetta! –

+0

https://jsfiddle.net/6ksujand/ solo il mio esempio che illustra quanto sia buona questa risposta – Squirrl

Problemi correlati