2011-10-21 68 views
7

的我有一些像这样的代码:获取元素的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> 

我希望能够确定,使用jQuery,一个给定的H2的指标,排除所有其他元素,所以只涉及h2元素。例如,如果我得到id =“123”的项目的索引,它会返回3,因为它是树中的第三个h2。

我已经试过这样:

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

但它似乎并没有工作。它仍然统计与DOM中结构相同级别的其他元素。

+1

记住, “123” 是不是为ID属性的有效值。 – jbabey

回答

17

您必须指定元素集合,然后使用index(<element>)来获取给定元素的索引。注意:参数必须是jQuery或DOM对象。字符串不起作用。
请注意,JavaScript索引是从零开始的,因此2的索引实际上意味着第三个元素

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

小提琴:http://jsfiddle.net/2dg2q/

+1

这是天才!!,你需要一个奖项,我想他们应该创造一个新闻的方式来做到这一点 – Fanckush

+1

完美的答案! –

+0

https://jsfiddle.net/6ksujand/只是我的例子说明这个答案有多好 – Squirrl