web-dev-qa-db-fra.com

Jquery trouve l'élément correspondant le plus proche

J'ai une série de lignes avec des colonnes et je veux sélectionner la valeur d'un champ input qui se trouve dans une colonne précédente du champ input (entrée de prix) sur lequel j'appelle une fonction quand une clé est relâchée.

J'ai essayé:

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

Mais ni travail.

Un exemple du 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>
57
imperium2335
var otherInput = $(this).closest('.row').find('.inputQty');

Cela monte au rang, puis redescend à .inputQty.

123
Utkanos

closest() ne cherche que les parents, je suppose que ce que vous voulez vraiment, c'est .find()

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

Obtenir le .column parent de l’élément this, récupère son frère précédent, puis trouve toutes les entrées à cet endroit:

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

Démo: http://jsfiddle.net/aWhtP/

1
Esailija

Tu pourrais essayer:

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

0
Alex