2012-08-01 15 views
49

Ich habe eine Reihe von Zeilen mit Spalten und ich möchte den Wert eines input Felds auswählen, das in einer vorherigen Spalte zu dem input Feld (Preiseingabe) ist, die ich eine Funktion aufrufen, wenn a Schlüssel ist freigegeben.Jquery finden am nächsten passenden Element

Ich habe versucht:

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

Aber weder Arbeit.

Ein Beispiel für das 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> 

Antwort

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

, dass bis zu einem Zeilenebene geht, dann in zurück.

+0

Gibt es keine andere Funktion, die auf der gleichen Ebene wie das aktuelle Element sucht? Musst du immer hoch und runter gehen? – Majo0od

+0

Diese Frage war nicht etwas, auf dem gleichen Niveau zu finden - es notwendig war, dann gehen wieder nach unten - aber ja, für die gleiche Ebene gibt es '.siblings()' 'und verschiedene nächste ~()' und 'zurück ~() 'Methoden. – Utkanos

+2

danke Ich war auf der Suche nach einer solchen Lösung und es hat für mich funktioniert! aber am wichtigsten lerne ich mehr über die engste() Funktion. Ich danke dir sehr! Davide, –

1

Holen Sie sich das .column Elternteil des this Element, seine früheren Geschwister bekommen, finden dann jede Eingabe gibt:

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

Demo: http://jsfiddle.net/aWhtP/

0

Sie könnten versuchen:

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

10

closest() sieht nur für Eltern, ich bin zu raten, was Sie wirklich wollen, ist .find()

$(this).closest('.row').children('.column').find('.inputQty').val(); 
Verwandte Themen