2011-06-25 17 views
1

jQueryを使用して同じレベルのDOMにある特定のクラスのdivにアクセスするにはどうすればよいですか? .closest()を試しましたが、要素が見つかりませんでした。例えばjQueryで最も近いDOM要素を選択

<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> 

がどのようにこの場合の「特性値」にアクセスするには:

<!-- 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値」が、成功せずにアクセスしようとしていますか?

ありがとうございます。

答えて

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

.prev以前兄弟を選択します。 .closestは、アイテムがすぐに前の兄弟ではない場合(.prevだけは、1つの要素を選択して)、これは動作しません両親(および現在の項目自体が)

を選択します。あなたは代わりにこれらのいずれかの操作を行うことができます

.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

関連する問題