Obtenez l'index parent avec jQuery

<ul class="bullets"> <li><a href="#">item 1</a></li> <li><a href="#">item 2</a></li> <li><a href="#">item 3</a></li> <li><a href="#">item 4</a></li> <li><a href="#">item 5</a></li> </ul> 

Lorsque je clique sur l'élément <a> , j'aimerais que ce soit le numéro d'index du parent <li> .

J'essaie de créer une fonction de type carrousel qui ne nécessite pas de classes item-n sur les éléments de la liste.

 $(".bullets li a").click(function(){ var myIndex = $(this).parent().index(this); showPic(myIndex); }); 

Merci pour toute aide.

TD.

 $(".bullets li a").click(function(){ var myIndex = $(this).parent().prevAll().length; showPic(myIndex); }); 

Note: prevAll().length vous donnera un index basé sur zéro; Le premier élément sera 0 (zéro).

$(this).parent().index();

court et doux

Correction: ce n'est pas court et doux

D'où vient cela, il devrait être comme:

 $(".bullets li a").click(function(){ var myIndex = $(this).parent().index(); console.log(myIndex); showPic(myIndex); }); 

Comment je le ferais

 $(".bullets li a").click(function() { var $li = $(this).parent(); var myIndex = $li.parent().children().index( $li ); alert( myIndex ); }); 
 $(".bullets li a").click(function(){ var me = $(this); var myIndex = $.each($("li", $(this).parent().parent()), function(i, item){ if(item == me){ showPic(i); }); }); 

Voici une solution que j'ai créée en utilisant des tableaux. Vous pouvez voir comment j'ai utilisé les sélecteurs. Je suis sûr que cela pourrait être plus propre, mais ici vous êtes:

  $('.showColumn').live('click',function() { var theEl = {{id of the element}}; var setEl = $('th#' + theEl + ''); var index = setEl.index(setEl.parentNode); $('table tr').each(function() { $('th:eq(' + index + ')',this).show(); $('td:eq(' + index + ')',this).show(); }); }); 

Cheers.bo

 $(".bullets li a").click(function(){ var myIndex = $(this).parent().index(); console.log(myIndex); showPic(myIndex); });