11

イベント「クリック」で、複数のコンテナに入れることができる要素のインデックスを取得したいと思います。返されるインデックス位置は、bodyタグではなく、コンテナを基準にして計算する必要があります。

ここに例を書きました:http://jsfiddle.net/zUGcK/

私の問題は、2番目のブロックコンテナの行をクリックすると、返される行インデックスが3、4、5であるのに対し、0、1、2が返されることです。

両方のコンテナの各行に0、1、2が返されるようにするには、jquery index()引数で何を変更する必要がありますか?

ありがとう

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 に答える