2014-01-27 90 views
1

我有這個多個元素具有相同的類。多元素,相同的類,獲得一個元素的值 - jQuery的

<div class="test-container"> 
    <a class="dup-class"> 
     Get Value 
    </a> 

    <div class="product-list-col"> 
     1 
    </div> 
</div> 

<div class="test-container"> 
    <a class="dup-class"> 
     Get Value 
    </a> 

    <div class="product-list-col"> 
     2 
    </div> 
</div> 

<div class="test-container"> 
    <a class="dup-class"> 
     Get Value 
    </a> 

    <div class="product-list-col"> 
     3 
    </div> 
</div> 

如果我點擊第一個div中的<a>標籤,它應提醒.product-list-col值是價值1

如果我點擊錨標記的第二個div,應該提醒2

這裏是它

$(".dup-class").on('click', function() { 
    cont = $(this + " .product-list-col").text(); 
    alert(cont); 
}); 

這個東西的任何解決方案的代碼?

下面是它的的jsfiddle:http://jsfiddle.net/Vigiliance/PLeDs/3/

回答

4

,因爲它選擇所有.product-list-col

$(".dup-class").on('click', function() { 
    cont = $(this).siblings('.product-list-col').text(); 
    alert(cont); 
}); 

你可以使用兄弟姐妹(),爲什麼你的代碼不起作用的原因或使用的.next()

​​
+1

我會說,'siblings'是一個更好的選擇,因爲'next'將被綁定到當前DOM結構... – Lix

+0

您還可以通過具有內元素的jQuery搜索做到這一點parent(),通過向jQuery搜索提供上下文作爲第二個參數:$('。product-list-col',$(this).parent())。text();如果元素不再是兄弟姐妹。 http://api.jquery.com/jquery/#selector-context – user1853181

1

做到這一點:

$(".dup-class").on('click', function() { 
    cont = $(this).next().text(); // this is the line where change done 
    alert(cont); 
}); 

http://jsfiddle.net/PLeDs/2/

+0

這在技術上是有效的,但這是一個壞主意,因爲一旦DOM結構發生變化,它就會中斷。 – user1853181

+0

該解決方案適用於特定類型的問題。如果你確定下一個元素只是這個,你就這樣做,否則我們可以選擇像'siblings('。someclass')' –

+0

我只是指出,依靠DOM結構被固定是不好的做法,永不改變。 – user1853181

相關問題