2010-02-26 4 views

Répondre

7

Il est possible à l'aide jquery's index.

EDIT:

<ul id="my_list"> 
    <li>item 1</li> 
    <li>item 2</li> 
    <li>item 3</li> 
</ul> 

et js,

var $my_list = $('#my_list'); 
$my_list.find('li').click(function(){ 
    var index = $('ul#my_list li').index(this); 
    alert(index); 
}); 

cela devrait faire ce que vous avez besoin.

espérons que cela aide, Sinan.

+0

parfait merci !!! –

+0

@Ad, vous êtes les bienvenus, @Dominic, merci pour l'édition ... – Sinan

-1

Code Pseudo

$('ul > li').each(function(el) { 

    el.ClickEvent(function() { 

     alert(el.preceding-siblings.count() + 1); 

    }); 
}); 

Quelque chose comme ça de toute façon, désolé n'a pas eu le temps d'obtenir le point de syntaxe sur

+0

Cela ne vous dira-t-il pas combien de 'li's il y a dans le' ul', plutôt que l'index du 'li' cliqué dans le' ul'? –

+0

Euh, désolé, je voulais dire les frères et sœurs précédents –

+0

Je ne pense pas que les frères et sœurs soient valides jQuery - ai-je oublié quelque chose? Voulez-vous dire 'prevAll' (http://api.jquery.com/prevAll/)? –

-1
okie i have edited my answer do this 

$(function() 
{ 
    var _item=1; 
    $('ul li').each(function(){ 
    var _elm=$(this).attr('_elm',_item); 
    }).bind('click',_handle); 
    _item++; 
}); 

function _myClick(e) 
{ 
    var _yourValue=$(e.target).attr('_elm'); 
    //this is the value u were looking for 
} 
+0

cela ne fait même pas ce qu'Ad Taylor a demandé ... – Kennethvr

+0

@keeth ce code va résoudre son problème –

2

vous pouvez leur attribuer des ID comme

<ul> 
    <li id="1">item 1</li> 
    <li id="2">item 2</li> 
    <li id="3">item 3</li> 
</ul> 

alors:

$("li").live('click', function(){ 
alert($(this).attr("id")); 
} 

ou sans ID comme dit Sinan:

$("li").live('click', function(){ 
    alert($("li").index(this) + 1); 
    } 

+1 parce que l'indexation commence à partir de 0

+0

Sans un ID sur le 'ul', cela ne fera certainement pas ce qu'il veut (voir ma réponse). –

+0

@Dominic Rodger oui j'ai vu ta réponse, eh bien il a eu ce qu'il a demandé .. donc je ne vais pas m'embêter à mettre à jour une question .. tnx pour m'avoir indiqué ça ... ça pourrait être juste pour moi bientot – ant

2
$("ul#your_ul li").click(function() { 
    // this is the dom element clicked 
    var index = $("ul#your_ul li").index(this) + 1; 
}); 

Vous devez donner le ul que vous voulez faire cela sur une carte d'identité - sinon il retourne l'index de la li en termes de tous les li s au sein ul s, ce qui est pas ce que vous voulez.

Questions connexes