2012-08-01 12 views
49

私は列を持つ一連の行を持っています。inputフィールド(価格入力)の前の列にあるinputフィールドの値を選択して、キーがリリースされます。Jqueryは最も近い一致する要素を見つけます

私が試してみました:

quantity = $(this).parent().parent().children().val() ; 
quantity = $(this).parent().parent().children().closest('.inputQty', this).val() ; 

しかし、どちらも仕事を。

DOMの例:

<div class="row"> 
    <div class="column"><input class="inputQty" id="quantity0" /></div> 
    <div class="column"><input class="someOther" id="Other0" /></div> 
    <div class="column"> 
     <div class="cSelect"> 
      <select id="currency0"><option>£</option></select> 
      <input class="price" id="price0" /> 
     </div> 
    </div> 
</div> 

答えて

104
var otherInput = $(this).closest('.row').find('.inputQty'); 

です。

+0

が無ありあなたが現在いる要素と同じレベルで何かを探す他の関数?あなたはいつも起き上がって戻らなければなりませんか? – Majo0od

+0

この質問は同じレベルで何かを見つけ出すことではなく、同じレベルで何かを見つけることではなく、同じレベルでは '.siblings()'やさまざまな 'next〜()'や 'prev〜 () 'メソッドを呼び出します。 – Utkanos

+2

私はそれのような解決策を探していたので、それは私のために働いた!最も重要なのはclosest()関数の詳細です。どうもありがとうございます! Davide、 –

1

は、this要素の.column親を取得し、その前の兄弟を取得し、その後、そこに任意の入力を見つける:

$(this).closest(".column").prev().find("input:first").val(); 

デモ:http://jsfiddle.net/aWhtP/

0

試してみることができます:

$(this).closest(".column").prev().find(".inputQty").val();

10

closest()のみの両親を探し、私はあなたが本当に欲しいものを推測していることには当時、行レベルまで上昇.find()

$(this).closest('.row').children('.column').find('.inputQty').val(); 
関連する問題