2012-06-03 3 views
10

"klik" olayında, çoklu konteynırda olabilen bir öğenin dizinini almak istiyorum. Döndürülecek dizin pozisyonu, beden etiketine değil, konteynerine nisbetle hesaplanmalıdır. , 3, 4, 5 Ben 0, 1 istiyorum oysa: http://jsfiddle.net/zUGcK/Farklı kaplar içinde aynı öğe sınıfının jquery endeksini alın

Sorunum ikinci blok konteyner içinde hatlarında tıkladığınızda döndürülen satır indeksi vardır yani:

Burada bir örnek yazdı 2 iade edilecek.

Her iki kapsayıcıda her satır için 0, 1, 2 döndürülmesi için jquery index() argümanlarında neleri değiştirmeliyim?

Teşekkür

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> 

cevap

17
Sen $.index

.index(element) 
element The DOM element or first element within the jQuery object to look for. 
​ 
bu sözdizimini kullanmak zorunda Sen konteyner

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

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

var içinde elementler için endeks değeri elde için kullanabilir

Working Fiddle

+0

Ne çizgi bloğu bir hat konteyner bloğunun içinde de ne olur? Burada bir göz var: http://jsfiddle.net/zUGcK/32/ Bu durumda, geri dönen dizin her zaman -1 (öğe indeksi bulunamadı, ancak yanlış yaptığımı göremiyorum) . Düğme konteynerinin dizinini almaya çalışıyorum (düğme olan satır ve düğmenin konteyneri olan satır kabı). Yardımın için çok teşekkürler. – Vincent

+0

http://jsfiddle.net/zUGcK/22/, bu, sorunuzdakiyle aynı fikirdir. bunu güncelledin mi? –

+0

Daha sonra bu http://jsfiddle.net/joycse06/zUGcK/35/ –

0

$ ile bu dizin güncellenmiştir.

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

    alert('index: '+indx); 
}); 
+1

Hayır, '$ (this) .index()' 'div.header' içerdiğinden tüm kardeşlere bakar ve endeksiniz birer birer sona erer. –

+0

Teşekkürler @muistooshort düzeltme için. Ben cevabı güncelledik. –