单击事件时无法更新文本

我有一个带加号和减号按钮的div:

1

点击加号按钮,我想增加数量,同样减少数量,当点击减号按钮时。

为了实现这一点,我写了两个事件:

 $( document ).on( "click", ".minus", function() { var quantity = $(this).closest("ul").find("i.qt").text(); var a = parseInt(quantity); a-=1; $(this).closest("ul").find("i.qt").text-a; }); $( document ).on( "click", ".plus", function() { var quantity = $(this).closest("ul").find("i.qt").text(); var a = parseInt(quantity); a+=1; $(this).closest("ul").find("i.qt").text+a; }); 

但是,按下什么按钮并不重要,没有任何反应。

能否请你帮忙?

一个显示我的问题的小提琴: http : //jsfiddle.net/LESn3/2/

您可以使用.next()prev()来定位数量文本:

 $( document ).on( "click", ".minus", function() { var quantity = $(this).next().text(parseInt($(this).next().text())-1); }); $( document ).on( "click", ".plus", function() { var quantity = $(this).prev().text(parseInt($(this).prev().text())+1); }); 

演示

您没有正确分配文本值。

您需要将.text作为函数调用:

 $(this).closest("ul").find("i.qt").text(a); 

固定示例 – http://jsfiddle.net/LESn3/1/

你实际上并没有更新文本

如果你更换线条它会工作:

 $(this).closest("ul").find("i.qt").text-a; // ... $(this).closest("ul").find("i.qt").text+a; 

有:

 $(this).closest("ul").find("i.qt").text(a); 

根据我对OP的理解,这里是您应该关注的解决方案。

 $(document).on( "click", ".minus,.plus", function() { var quantity = $(this).siblings('.qt').text(); var a = parseInt(quantity); if($(this).hasClass('minus')) a-=1; else a+=1; $(this).siblings('.qt').text(a); }); 

如果您有任何疑问,请告诉我。

小提琴