2011-10-21 12 views
7

の特定の種類を含む:私は他のすべてを除く、jQueryの、与えられたH2の指標で、決定することができるようにしたい要素のjQueryのインデックスを取得します - だけ私はこのようないくつかのコード持っている要素

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

をh2要素にのみ関連しています。たとえば、id = "123"のアイテムのインデックスを取得した場合、ツリー内の3番目のh2のように3が返されます。

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

をしかし、動作するようには思えない。

私はこれを試してみました。それは、カウント内のDOM構造の同じレベルで他の要素をカウントします。

+1

"123" は、ID属性の有効な値ではないことに注意してください。 – jbabey

答えて

17

要素のコレクションを指定してから、index(<element>)を使用して、指定された要素のインデックスを取得する必要があります。注意:引数はjQueryまたはDOMオブジェクトでなければなりません。文字列は機能しません。
JavaScriptインデックスはゼロベースであるため、2というインデックスは実際にはの第3要素を意味します。

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

フィドル:http://jsfiddle.net/2dg2q/

+1

これは天才です!!あなたは賞を必要とし、私は彼らがそれを行うためのニュース方法を作成する必要がありますね – Fanckush

+1

完璧な答え! –

+0

https://jsfiddle.net/6ksujand/この回答がどれほど優れているかを示す例 – Squirrl

関連する問題