2012-10-19 11 views
6

Powiedzmy mam następujący kod HTMLprzykład jQuery get index/pozycja rodzeństwa

<ul> 
<li id="a">a</li> 
<li id="b">b</li> 
<li id="c">c</li> 
</ul> 
<ul> 
<li id="d">d</li> 
<li id="e">e</li> 
<li id="f">f</li> 
</ul> 

Jeżeli użyłem jQuery chwycić pozycja $ („# e”), w jaki sposób określić położenie pozycji/indeks e względem jego rodzeństwa d i f? Innymi słowy, spodziewam się, że wartość 1 (jeśli indeks bazujący na zerach) zostanie zwrócony lub 2 (jeśli indeks bazuje na jednym), ponieważ jest to drugi element na liście ul.

Odpowiedz

16

Proste: var idx = $('#e').index() // zero based

1

Możesz też spróbować:

$(function() { 
    $('ul li').each(function(idx, e) { 
     $(this).on('click', function() { 
      alert(idx); 
     }); 
    }); 
}); 

Jedynym problemem jest to, że będziemy obecnie główna Wszystkie li na całej stronie.

Edit

Ten daje indeks wszystkich li treści.

$(function() { 
    $('ul li').each(function(idx, e) { 
     $(this).on('click', function() { 
      alert($('#' + $(this).attr('id')).index()); 
     }); 
    }); 
}); 
+0

Nie odpowiedzieć na pytanie w ogóle ... – MatRt

+0

@ user1073122 Sprawdź najnowszą edycję. – hjpotter92

1

Można również użyć var ​​IDX = $("#e").prevAll().size()

0
function getIndex(id) { 
    $('ul > li').each(function() { 
     if ($(this).attr('id') == id) { 
      return i; 
     } 
    }); 
    return 0; 
}