单击事件时无法更新文本
我有一个带加号和减号按钮的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); });
如果您有任何疑问,请告诉我。
小提琴