2012-12-28 67 views
1

我有一個列表DIV的是一個容器DIV類似於下面。獲取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

回答

6

您只需撥打$(this).index();獲得點擊項目的索引裏面它的父:

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

http://jsfiddle.net/5ShLs/

0

首先..

$('#ChainLinkList').parent() 

在此您所呼叫的div chainlinklist的父母,在這裏它的自我是你需要elemnt格的父母..所以這不會爲你做。
因此試試這個..

$(this).index(); 
0

沒有必要去父母..只是讓你點擊的元素的索引..

在jQuery 1.7中,.live()方法已經過時了。

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

你可以試試這個:

.live已被棄用,因此最好使用.on()處理

$(document).on("click", ".chainSelect", function(){ 
    var index = $(this).index(); 
    alert(index); 
}); 
+0

+1注意到'live'; -1作爲'e.target'並不是一個好建議,但它具有不同的含義。 (總共:0我) –

+0

好吧!但沒有得到它爲什麼e.target不是一個好建議?熱衷於學習更多。 – Jai

+0

'e.target'可以返回目標元素的子元素;這個孩子在_its_ parent中的位置與this不同。 'e.target'與綁定元素或委託元素無關。 –

1

你應該改變

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

爲:

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

fiddle