0

私は、必要な要素の .text() を取得するために最も近いものを使用する必要がある jQuery にこだわっています。

HTMLは次のとおりです。

<div class="endorse-set">
<div class="endorse">
<span class="keyword" id="keyword-1">web developer</span>
<textarea class="comment" id="comment-1"></textarea>
<input type="button" class="endorse-button" id="endorse-button-1" value="Endorse">
</div>​​​​​​​​​​​​​​​​​​​​​​
<div class="endorse">
<span class="keyword" id="keyword-2">web designer</span>
<textarea class="comment" id="comment-2"></textarea>
<input type="button" class="endorse-button" id="endorse-button-2" value="Endorse">
</div>​​​​​​​​​​​​​​​​​​​​​​
<div class="endorse">
<span class="keyword" id="keyword-3">Entrepreneur</span>
<textarea class="comment" id="comment-3"></textarea>
<input type="button" class="endorse-button" id="endorse-button-3" value="Endorse">
</div>​​​​​​​​​​​​​​​​​​​​​​
</div>

ユーザーがクリックしたときに、.text()つまりWebデザイナー、Web開発者、または起業家とその価値を取得する必要があります.comment.endorse-button

私はこのようにして失敗しました:

$(".endorse-button").click(function(){        
        var keyword = $(this).closest('span.keyword').text();
        var comment = $(this).closest('textarea.comment').val();
        alert(keyword);
        alert(comment);
});

私は何も得ていません。私たちを手伝ってくれますか?

PS私はjQueryが初めてです!

ありがとう!

4

2 に答える 2

3

このclosestメソッドは、祖先要素 (たとえば、parentdiv.endorseやその親など) を調べます。問題の要素は兄弟siblingsであるため、次のメソッドを使用できます。

$(".endorse-button").click(function(){        
    var keyword = $(this).siblings('span.keyword').text();
    var comment = $(this).siblings('textarea.comment').val();
    alert(keyword);
    alert(comment);
});
于 2012-06-30T18:37:28.527 に答える
1

.closest()これは、この状況で使用する方法です。

$('.endorse-button').click(function(){
    var endorse = $(this).closest('.endorse'),
        keyword = endorse.find('span.keyword').text(),
        comment = endorse.find('textarea.comment').val();
    alert(keyword);
    alert(comment);
});
于 2012-06-30T18:42:35.760 に答える