使用Jquery获取特定标记的索引

时间:2012-02-22 11:19:43

标签: jquery

是否有办法只在父级中索引特定元素。例如。

$('h4').click(function(){

   alert($('div h4').index('h4'));

});

<div>
 <p>do not include in indexing</p>
 <p>do not include in indexing</p>
 <p>do not include in indexing</p>
 <p>do not include in indexing</p>
<h4>Tag I want to include in index</h4>
<h4>Tag I want to include in index</h4>
</div>

我想要的是对应于我点击的h4标签的0或1警报。

这可以用jquery吗?

更新&gt;&gt;&gt;&gt;&gt;&gt;

嘿伙计们感谢所有的答案,你们提供的大部分内容都有效,但在工作实践中它似乎没有起作用。我想我的页面中的其他地方有问题。

非常感谢

4 个答案:

答案 0 :(得分:6)

试试这个

$('h4').click(function(){    
   alert($('div h4').index(this));    
});

小提琴示例:http://jsfiddle.net/L84QV/

答案 1 :(得分:2)

根据documentation

  

如果我们使用字符串作为.index()方法的参数,它将被解释为jQuery选择器字符串。对象的匹配元素中的第一个元素也与此选择器匹配。


所以你可以这样做:

$('h4').click(function(){    
    var idx = $(this).index('h4');
    alert(idx);
});​

<强> DEMO

答案 2 :(得分:1)

使用此测试HTML:

  <div id="main">
      <p>do not include in indexing</p>
      <p>do not include in indexing</p>
      <p>do not include in indexing</p>
      <p>do not include in indexing</p>
      <h4>Tag I want to include in index</h4>
      <h4>Tag I want to include in index</h4>
   </div>     
   <div id="test"></div>

......和这个JS:

$('h4').click(function() {
  var index1 = $(this).index("h4");
  $("#test").append(index1);
});​

将0或1附加到我添加的测试div元素。

jsfiddle:http://jsfiddle.net/8Tfq8/11/

答案 3 :(得分:0)

$('>'+this.tagName,this.parentNode).index(this)

http://jsfiddle.net/doktormolle/ZVmaL/