1

我有一个 's 列表是一个类似于下面DIV的容器。DIV

  <div id="ChainLinkList">
  <div class="chainSelect" id="L2176">jj</div>
  <div class="chainSelect" id="L2171">suby 3</div>
  <div class="chainSelect" id="L2170">suby 2</div>
  <div class="chainSelect" id="L2167">submenu</div>
  </div>

我想DIV在单击时获得特定的顺序。我试过以下

   $(".chainSelect").live("click", function() {
   var index = $(this).parent().index(".chainSelect");
   alert(index);
   .....

   $(".chainSelect").live("click", function() {
   var index = $('#ChainLinkList').parent().index(".chainSelect");
   alert(index);
   .....

但我似乎得到-1

4

5 回答 5

7

您可以调用$(this).index();以获取其父项中单击项的索引:

$(".chainSelect").live("click", function() {
   var index = $(this).index();
   alert(index);
});​

http://jsfiddle.net/5ShLs/

于 2012-12-28T10:42:13.037 回答
1

你可以试试这个:

.live已弃用,因此最好使用.on()处理程序

 $(document).on("click", ".chainSelect", function(){
   var index = $(this).index();
   alert(index);
 });
于 2012-12-28T10:47:12.737 回答
1

你应该改变

$(".chainSelect").live("click", function() {
   var index = $(this).parent().index(".chainSelect");
   alert(index);
});

为了:

$(".chainSelect").live("click", function() {
   var index = $(".chainSelect").index(this);
   alert(index);
});​

小提琴

于 2012-12-28T10:47:36.253 回答
0

第一..

    $('#ChainLinkList').parent() 

在此您调用 div chainlinklist 的父级,这里它本身是您需要的元素 div 的父级..所以这对您不起作用。
因此试试这个..

    $(this).index(); 
于 2012-12-28T10:44:00.973 回答
0

无需去父级..只需获取单击元素的索引..

从 jQuery 1.7 开始,该.live()方法已被弃用。

$(".chainSelect").on("click", function() {
  var index = $(this).index();
  alert(index);
});​
于 2012-12-28T10:44:25.763 回答