0

これをチェックしてください

http://jsfiddle.net/ANygj/

値を選択すると、価格が通知されます。そうではありません、それは空を警告しますか?正しく選択しないように。

私はparent()とparent()で試しましたが、違いはないようです。

どうすればこれを機能させることができますか?

4

4 に答える 4

2

closest('tr')代わりに試してください。

var price = qty.closest('tr').find('td.price').text();

デモ: http://jsfiddle.net/ANygj/1/

于 2012-09-11T18:52:47.683 に答える
1

イベントをバインドする要素はselect. の親は要素でselectはありませんtrclosest()にアクセスするには、次を使用する必要がありますtr

$(document).ready(function(){
    $('.qty').change(function(){
        var qty = $(this);
        var price = $(qty).closest('tr').find('td.price').text();

        alert(price);
    });
});​

JS フィドルのデモ

この理由はparent()、メソッドの名前が示すように、現在の要素の親を参照し、親要素がメソッドに渡されたセレクターと一致する場合に処理を続行するためです。

closest()DOM ユーティリティを調べて、メソッドに渡されたセレクターに一致する最初の祖先要素を見つけます。

現在parents()の要素の祖先を検索し、メソッドに渡されたセレクターに一致するすべての要素を返す もあります。

于 2012-09-11T18:53:01.353 に答える
0

これは、 http://jsperf.com/jquery-parents-vs-closest/8に従ってclosest使用するよりもわずかに高速です。

于 2012-09-11T18:59:04.010 に答える
0

「親」ではなく「親」を使う

$(this).parents('tr').find('.price').text();
于 2012-09-11T18:54:50.593 に答える