Jquery 无法获取最接近的数字输入字段值

Jquery 无法获取最接近的数字输入字段值,jquery,Jquery,当我试图获取与按钮最近的输入字段的值时,结果是一直没有定义 我试过这个: $('button.add_to_cart_button.button.ajax_add_to_cart').on('click', function() { var v = $(this).closest('div.quantity').find("input[name='quantity']").val(); console.log(v); }); 这是: $('button.add_

当我试图获取与按钮最近的输入字段的值时,结果是一直没有定义

我试过这个:

$('button.add_to_cart_button.button.ajax_add_to_cart').on('click', function() {
        var v = $(this).closest('div.quantity').find("input[name='quantity']").val();
        console.log(v);
});
这是:

$('button.add_to_cart_button.button.ajax_add_to_cart').on('click', function() {
       var v = $(this).closest( '.input-text.qty' ).val();
       console.log(v);
});
但正如前面提到的,我只是得到了“未定义”的回复

以下是html:

<div class="quantity">
<label class="screen-reader-text" for="quantity_5dce7f0dc2a65">Some label</label>
<input type="number" class="input-text qty text" step="1" min="0" max="" name="quantity" value="1" title="Qty" size="4" inputmode="numeric">
</div>
<button type="submit" data-product_id="123" data-quantity="1" class="add_to_cart_button button ajax_add_to_cart">Buy</button>

一些标签
购买
您必须使用
$(this).prev('div.quantity')
,因为
.quantity
不是按钮的父按钮,而是同级按钮

如果您的按钮位于
.quantity
内,则代码将正常工作

演示

$('button.add_to_cart_button.button.ajax_add_to_cart')。on('click',function(){
var v=$(this.prev('div.quantity').find('input[name='quantity']).val();
控制台日志(v);
});

一些标签

购买
如下更改html标记:

<div class="quantity">
    <label class="screen-reader-text" for="quantity_5dce7f0dc2a65">Some label</label>
    <input type="number" class="input-text qty text" step="1" min="0" max="" name="quantity" value="1" title="Qty" size="4" inputmode="numeric">

    <button type="submit" data-product_id="123" data-quantity="1" class="add_to_cart_button button ajax_add_to_cart">Buy</button>
</div>
$('button.add_to_cart_button.button.ajax_add_to_cart').on('click', function() {
    var v = $(this).prev().find("input[name='quantity']").val();;
    console.log(v);
});