Javascript 文本框的增量控件

Javascript 文本框的增量控件,javascript,jquery,css,Javascript,Jquery,Css,我有一些代码,添加了两个按钮来增加和减少文本框的数量,效果很好。我正在尝试扩展该代码以处理多个文本框。不幸的是,文本框的名称会因页面而异,因此我使用了一个由所有文本框共享的类名,并尝试递增距离每个递增按钮最近的文本框,但文本框的值为NaN 奇怪的是,它没有产生任何错误。NaN来自console.log行 如果有人能给我指出正确的方向,我会非常感激 单个实例(工作): 多个实例(不太多…): 首先像这样绑定事件处理程序:jQuery('.increase')。单击(increaseQty) 您应该

我有一些代码,添加了两个按钮来增加和减少文本框的数量,效果很好。我正在尝试扩展该代码以处理多个文本框。不幸的是,文本框的名称会因页面而异,因此我使用了一个由所有文本框共享的类名,并尝试递增距离每个递增按钮最近的文本框,但文本框的值为NaN

奇怪的是,它没有产生任何错误。NaN来自console.log行

如果有人能给我指出正确的方向,我会非常感激

单个实例(工作):

多个实例(不太多…):


首先像这样绑定事件处理程序:
jQuery('.increase')。单击(increaseQty)
您应该使用
this
关键字仅获取按钮附近的文本框。
然后尝试以下代码:

function increaseQty(e) {
    var tb = jQuery(this).closest('input');
    tb.val(parseInt(tb.val()) + 1);
}

closest()
函数搜索与选择器匹配的最近父元素。

需要在其中使用
this
e.target
,以便只对单击的项目进行操作
jQuery('.qty')
选择所有数量字段,而不仅仅是单击的字段。我永远都不明白为什么jQuery初学者觉得这很难实现。这本身是行不通的,他需要改变绑定事件的方式。他没有使用适当的上下文调用
increaseQty
。它应该是
jQuery('.increase')。单击(increaseQty)
ok,我按照您的建议更新了代码:
jQuery('.increase')。单击(increaseQty)
函数increaseQty(e){var tb=jQuery(this).closest('.qty');tb.val(parseInt(tb.val())+1);}
但是我没有得到任何值或错误,所以我添加了
控制台.log(“tb.val=“+tb.val”)并输出以下内容:
tb.val=function(a){var b,c,d,e=this[0];…(续)
Hmmm…注释中的格式有一些问题,但如果您查看代码笔,它就在那里:@Realto619它应该是
console.log(“tb.val=“+tb.val());
。如果您记录
tb.val
,它将为您提供
.val()
函数的定义。您必须执行函数调用
tb.val()
function increaseQty(e) {
    var tb = jQuery(this).closest('input');
    tb.val(parseInt(tb.val()) + 1);
}