Jquery找到最近的匹配元素

时间:2012-08-01 09:39:29

标签: jquery dom-traversal

我有一系列包含列的行,我想选择我在调用函数的input字段(价格输入)的前一列中的input字段的值当钥匙被释放时。

我试过了:

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>

4 个答案:

答案 0 :(得分:123)

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

上升到行级别,然后回到.inputQty

答案 1 :(得分:10)

closest()只找父母,我猜你真正想要的是.find()

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

答案 2 :(得分:1)

获取.column元素的this父项,获取其上一个兄弟,然后在那里找到任何输入:

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

演示:http://jsfiddle.net/aWhtP/

答案 3 :(得分:0)

你可以尝试:

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