Javascript 无法获取与特定类jQuery最接近的元素

Javascript 无法获取与特定类jQuery最接近的元素,javascript,html,Javascript,Html,我有一个函数可以捕获输入是否已更改,然后如果值超过最大值,它会将值设置为最大值。因此,您不能输入超过最大值的值。但是如果您尝试这样做,我希望显示错误消息,但我正在努力获取最接近的错误消息。这是我的密码 $(document).on('keydown-keyup','.quantity-input',函数(e){ var max=Number($(this.attr('max')); 如果($(this).val()>max){ e、 预防默认值(); $(此).val(最大值); $(this

我有一个函数可以捕获输入是否已更改,然后如果值超过最大值,它会将值设置为最大值。因此,您不能输入超过最大值的值。但是如果您尝试这样做,我希望显示错误消息,但我正在努力获取最接近的错误消息。这是我的密码

$(document).on('keydown-keyup','.quantity-input',函数(e){
var max=Number($(this.attr('max'));
如果($(this).val()>max){
e、 预防默认值();
$(此).val(最大值);
$(this).closest('.quant_warn').show();
}else if($(this).val()<1){
e、 预防默认值();
$(此).val(1);
}
});

数量:
只有10个存货

由于
.quant\u warn
div不是
输入的父级,而是同级,因此您需要使用

$(this).siblings('.quant_warn').show();
注意:当您跟踪使用输入时,使用
input
事件而不是
keydown keyup
会更有效

$(文档).on('输入','数量输入')函数(e){
var max=Number($(this.attr('max'));
如果($(this).val()>max){
e、 预防默认值();
$(此).val(最大值);
$(this).sides('.quant_warn').show();
}else if($(this).val()<1){
e、 预防默认值();
$(此).val(1);
}
});

数量:
只有10个存货

尝试此操作以获得更好的解决方案

$(document).on('keydown-keyup','.quantity-input',函数(e){
var max=Number($(this.attr('max'));
var val=parseInt($(this.val());
if(val){
如果(val>max){
e、 预防默认值();
$(此).val(最大值);
$(this).sides('.quant_warn').show();
}否则{
$(this).sides('.quant_warn').hide();
}
}
});

数量:
只有10个存货

您应该将代码从“$(this).closest(“.quant\u warn”).show()改为“$”到“$(this).最近('.quantity')。查找('.quant_-want')。显示();”因为类
.quant\u warn
没有被包装在
输入
上,这是您的案例中的对象
。这非常有效,谢谢。我将尝试改用输入,但我使用了Keydown-Keyup,因为它与输入的输入不冲突