2010-07-01 32 views
1

我如何知道列表項目在什麼位置被點擊。如何找出點擊元素的位置?

所以,讓我們說我點擊第二個列表項:

<li><a href="#"><span>Tab 2</span></a></li> 

然後,我會得到一個警告說類似:

你點擊第二個列表項?

jQuery代碼

$('#top-betting ul li:first').addClass('current'); 
$('#top-betting div:not(:first)').hide(); 

$('#top-betting ul li span').click(function() 
{ 
    ...? 
}); 

標記

<div id="tabs"> 
    <ul class="clearfix"> 
     <li><a href="#"><span>Tab 1</span></a></li> 
     <li><a href="#"><span>Tab 2</span></a></li> 
     <li><a href="#"><span>Tab 3</span></a></li> 
    </ul> 

    <div>Content 1</div> 
    <div>Content 2</div> 
    <div>Content 3</div> 
</div> 

回答

5

可以使用.closest().index()這樣做:

$('#top-betting ul li span').click(function() { 
    var index = $(this).closest('li').index(); 
}); 

總體而言,I think this is what you're after

$('#top-betting ul li span').click(function() { 
    $("#top-betting div").eq($(this).closest('li').index()).show() 
         .siblings('div').hide(); 
});​ 
+0

賓果,感謝尼克。我再也不能接受它10分鐘了 – 2010-07-01 15:38:57

2

index是你以後的方法。

$('li a').click(function(e){ 
     var $li = $(this).parents('li'); 
     var $ul = $(this).parents('ul'); 
     alert($ul.children().index($li)); 
    }); 

檢查的jsfiddle:http://jsfiddle.net/9V9D2/

+0

沒有必要這麼做,'$(this).closest('li')。index()'工作:)'.index()'沒有參數獲取元素相對於其兄弟的索引。 – 2010-07-01 15:48:40

+0

謝謝,剛纔看到你的答案。我必須說index()是一個給我最多問題的jQuery方法。 – Jamiec 2010-07-01 15:53:03

相關問題