2013-05-27 38 views
1

我在這裏讀了很多關於獲取索引值的問題。當點擊鏈接裏面的列表項ul li的索引

我知道如何通過點擊索引號獲得li。但是,當點擊鏈接時,我需要獲得li值。

<ul> 
    <li><a class=link href="#"></a></li> 
    <li><a class=link href="#"></a></li> 
    <li><a class=link href="#"></a></li> 
    <li><a class=link href="#"></a></li> 
</ul> 


$("li a.link").click(function(e) { 
    var i = $(this).index(); 
     alert(i) 
}); 

它不會工作,因爲它需要的a.linkul li索引。點擊特定a.link時,如何獲得li的索引?

+5

$(本).parent() 。指數(); –

回答

3

您可以使用jQuery的parent()選擇目標點擊的錨鏈接的父元素的索引。

在這種情況下,它將是:$(this).parent().index();

$("li a.link").click(function(e) { 
    var i = $(this).parent().index(); 
    alert(i); 
}); 

如果你想要得到的物理號碼(如第一批返回一個,第二個返回兩個),你只需要添加一個選擇:

$("li a.link").click(function(e) { 
    var i = $(this).parent().index() + 1; 
    alert(i); 
}); 
+0

謝謝你的回覆他們倆都不起作用,在第一種情況下,它始終顯示2或3無關緊要'code'li'code'我點擊。 –

+1

YE它是 - 抱歉,我只寫了anwser。因爲它表明我的情況是不同的。畢竟你的安撫者很好,幫助我解決了我的問題。謝謝:) –

+0

@SzymonDziewoński啊我以爲是這樣:)不用擔心男人,很高興隨時幫助! – lifetimes

0

您可以採取兩種方法:統計單擊li的位置,或者預先編號。二是更有效的(固定時間上的點擊):

var li_elems = $('li.link'), 
    i = 0, 
    len = li_elems.length; 

for (; i < len; i++) { 
    li_elems[i].attr('index', i); 
} 

$('ul').on('click', 'li.link', function (e) { 
    var index = this.getAttribute('index'); 
    alert(index); 
}); 
+1

它在這種情況下顯示null或不工作,因爲我想 –