11

在“点击”事件中,我想获取可以在多个容器中的元素的索引。返回的索引位置应该相对于它的容器而不是body标签来计算。

我在这里写了一个例子:http: //jsfiddle.net/zUGcK/

我的问题是,当我单击第二个块容器中的行时,返回的行索引是:3、4、5,而我希望返回 0、1、2。

我应该在 jquery index() 参数中进行哪些更改以获取为两个容器中的每一行返回的 0、1、2?

谢谢

http://jsfiddle.net/zUGcK/

$('.line').click(function()
{
    alert('index: '+$(this).index('.container .line'));
});

<div class="container">
<div class="header">block #1</div>
<div class="line">line #0</div>
<div class="line">line #1</div>
<div class="line">line #2</div>
</div>

<div class="container">
<div class="header">block #2</div>
<div class="line">line #0 (index 3 returned instead of 0)</div>
<div class="line">line #1 (index 4 returned instead of 1)</div>
<div class="line">line #2 (index 5 returned instead of 2)</div>
</div>
4

2 回答 2

18

您可以使用它来获取其容器中元素的索引值

$(function()
{
    $('.line').click(function()
    {
        //alert('index: '+$(this).index('.container .line'));

        alert($(this).closest('.container').find('.line').index(this));
    });
});

您必须使用$.index的这种语法

.index( element )
element The DOM element or first element within the jQuery object to look for.
​

工作小提琴

于 2012-06-03T18:56:04.153 回答
0

使用 $this 更新索引。

 $('.line').click(function()
{
    var $this=$(this);
   var indx= $this.parent('.container').find('.line').index($this);

    alert('index: '+indx);
});
于 2012-06-03T18:57:13.750 回答