更新:使用jQuery获取子div的索引

时间:2012-03-03 15:40:05

标签: jquery

我需要能够动态地确定另一个div中某个div的索引是什么。例如:

<div id="parent">
    <div id="div-0"></div>
    <div id="div-5"></div>
    <div id="div-1"></div>
    <div id="div-2"></div>
    <div id="div-3"></div>
    <div id="div-4"></div>
</div>

对于任何一个我需要能够知道给定div是否是第一个,第二个......等等。

编辑: 好吧,显然我没有解释得这么好。我尝试了下面的所有内容,每次我得到的都是0。我编辑了上面的例子来反映正在发生的事情。因此,鉴于更新的示例,我需要做的是以下内容:

var index = $('#div-4').index();

目前这只是每次都返回0。

3 个答案:

答案 0 :(得分:3)

playground

   $('#parent div').on('click',function(){     
      var elIndex = $(this).index();      
      $(this).text('my index is: '+ elIndex);     
   });

http://api.jquery.com/index/


很高兴知道在jQuery v中,1.3.3 .index()不起作用, 在这种情况下,您可以使用.prevAll()length

var elIndex = $(this).prevAll().length;

如果您有多个类名作为子项,则此技术特别有用,例如:在DIV中你有:

<div id="parent">
    <div class="aa"></div>
    <div class="bb"></div>
    <div class="aa"></div>
    <div class="bb"></div>
</div>

...然后点击'.aa'元素,你想得到它的'索引',而不是像以下那样:

$('#parent .aa').click(function(){  
  var elIndex = $(this).prevAll('.aa');  
  $(this).text('my index type of class name is: '+ elIndex);
});

答案 1 :(得分:0)

我不是评论中的注释:

<强>索引()

返回值

如果没有参数传递给.index()方法,则返回值是一个整数,表示jQuery对象中第一个元素相对于其兄弟元素的位置。

答案 2 :(得分:0)

您可以index使用@amnotiam表示(最佳方式)。你可以使用它甚至是其中一个来进行操作:

Firstnth-childclosesteq