jQuery递增最近未定义输入的值

jQuery递增最近未定义输入的值,jquery,Jquery,我有这个HTML: <div class="tiny-up-down-wrapper"> <div class="minus">-</div> <div class="counter"> <input class="count" type="text" value="0" /> </div> </div> 此问题是警报正在向我们发出未定义。如何解决此问题?问题是因为最近的

我有这个HTML:

<div class="tiny-up-down-wrapper">
    <div class="minus">-</div>
    <div class="counter">
        <input class="count" type="text" value="0" />
    </div>
</div>

此问题是警报正在向我们发出
未定义
。如何解决此问题?

问题是因为
最近的()
用于查找最近的父元素,而
输入
减去
元素的同级元素的子元素。相反,您可以使用
closest()
获取最近的
。然后使用
find()
获取
输入。试试这个:

$('.tiny-up-down-wrapper .minus').click(function() {
    $(this).closest('.tiny-up-down-wrapper').find('input').val();
    alert(theVal);
});
要实际减小该值,可以执行以下操作:

$('.tiny-up-down-wrapper .minus').click(function() {
    $(this).closest('.tiny-up-down-wrapper').find('input').val(function(i, v) {
        return --v;
    });
});

。“对于集合中的每个元素,通过测试元素本身并在DOM树中向上遍历其祖先来获取与选择器匹配的第一个元素。”通常,此任务通过组合来解决。只需将底部代码测试为递减,就不会发生任何事。。。知道为什么吗?我错了。我更新了答案并为您添加了一个示例。
$('.tiny-up-down-wrapper .minus').click(function() {
    $(this).closest('.tiny-up-down-wrapper').find('input').val(function(i, v) {
        return --v;
    });
});