2011-06-25 49 views
1

如何使用jQuery訪問具有與DOM相同級別的特定類的div? 我試過.closest(),但沒有找到元素。使用jQuery選擇最近的DOM元素

例如:

<!-- foreach loop starts { --> 
<fieldset> 
    <legend>Values</legend> 
    <div class="characteristic-values">   
     <!-- many divs inside --> 
    </div> 
    <input type="button" class="add-charactersitic-value" value="Add Value" /> 
</fieldset> 
<!-- } foreach loop ends --> 

和JavaScript嘗試訪問「charactersitic值」,但沒有成功:

<script> 
$(".add-charactersitic-value").live("click", function() { 
    var addButton = $(this); 

    // How to access the specified div from "addButton" variable?  
    // This doesn't work: 
    //addButton.closest(".characteristic-values").append("<b>somedata</b>");  
}); 
</script> 

如何訪問「特徵值」,在這種情況下?

謝謝。

回答

12
.prev('.characteristic-values'); 

.prev選擇以前兄弟姐妹.closest選擇父母(和當前項目本身)

如果該項目不在最接近的前兄弟,這是不行的(如.prev只選擇一個元素)。您可以執行這些來代替:

.prevAll('.characteristic-values'); 
.parent().find('.characteristic-values'); 
+0

或'.prevAll( '特徵值:第一')' –

+0

謝謝,.prev() - 工作的罰款。如果需要,將使用.prevAll(「class:pseudo」)。 – Zelid

0
$(".add-charactersitic-value").prev(".characteristic-values"); 

http://jsfiddle.net/UUdXk/

+0

這可能不起作用,因爲add-charactersitic-value類應用於循環中的許多div – Zelid