2012-08-01 22 views
49

Sütunlarla bir dizi satırım var ve bir önceki sütunda bulunan input alanına (fiyat girişi) bir input alanının değerini seçmek istiyorum. anahtar serbest bırakıldı.Jquery en yakın eşleşen elemanı bul

denedim:

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

Ama ne çalışma.

DOM örneği:

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

cevap

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

olduğunu.

+0

hayır var mıdır Şu anda üzerinde bulunduğunuz öğe ile aynı düzeyde bir şey arayan diğer işlev Her zaman yukarı ve aşağı gitmek zorunda mısın? – Majo0od

+0

Bu soru aynı seviyede bir şey bulmakla ilgili değildi - o zaman geri gitmek için gerekliydi - ama evet, aynı seviye için .siblings() 've çeşitli' next ~() 've' prev ~() yöntemleri. – Utkanos

+2

teşekkürler Ben böyle bir çözüm arıyordum ve benim için çalıştı! ama en önemlisi yakın() işlevi hakkında daha fazla şey öğreniyorum. Çok teşekkür ederim! Davide, –

1

, this elemanın .column üst alın önceki kardeş olsun, o zaman herhangi bir giriş bulmak:

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

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

0

Şunları deneyebilirsiniz:

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

10

closest() sadece ebeveynler arar, ben gerçekten ne istediğini tahmin ediyorum geri, sonra bir satır seviyesine kadar gider .find()

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