Javascript 每次单击按钮时,将值Y添加到值X

Javascript 每次单击按钮时,将值Y添加到值X,javascript,jquery,function,Javascript,Jquery,Function,我可能错过了房间里的大象,但我想不出来 我想做的是,每次单击按钮时,将Y amount添加到变量X中。Y通过onClick函数传递 addStat: function(button, amount, price) { var curPrice = price; var priceHtml = $(button).closest("tr").find('.price'); curPrice += price; $(priceHtml).text(curPrice

我可能错过了房间里的大象,但我想不出来

我想做的是,每次单击按钮时,将Y amount添加到变量X中。Y通过onClick函数传递

addStat: function(button, amount, price) {
    var curPrice = price;
    var priceHtml = $(button).closest("tr").find('.price');

    curPrice += price;

    $(priceHtml).text(curPrice);

}, 
这就是我所拥有的,但我有一种感觉,我需要将一个值设置为当前价格,也许在函数之外?我试过了,但每次按下按钮都会复位

欢迎提出任何意见/建议。我对JS有点陌生。只是学习


如果我得到price HTML元素的值,我知道有一种方法是可行的。但问题是,它可以用chrome inspect进行编辑。

您只需使用
priceHtml.text()
获取当前价格值,并将其分配给
curPrice
变量即可

试试这个:

var priceHtml = $(button).closest("tr").find('.price');
var curPrice = parseFloat(priceHtml.text())||0;

curPrice += price;

priceHtml.text(curPrice);

您必须设置
让curPrice=0在函数之外,在代码之上。然后您可以简单地使用
curPrice+=parseFloat(price)在函数内部。防止错误覆盖curPrice的值

编辑->示例:

让curPrice=0;
功能更新价格(按钮、金额、价格){
如果(!isNaN(价格)){
价格+=价格;
返回$(按钮).find('.price').text(curPrice.toFixed(2));
}
返回false;
}

0
不行!

我试着把你想做的事情简化为一个最小的例子。从你的问题来看,听起来你想在点击时做四件事:

  • 接受元素的文本值
  • 将该值强制为一个数字
  • 加倍
  • 将新值写入元素
您不必将
curPrice
var移到函数外部。在每次点击时重新声明它并不重要,因为你会立即将它自身加倍。您需要将传入文本解析为一个数字,否则javascript将假定您正在尝试进行字符串连接:

函数addStat(事件){
var curPrice=parseInt(event.target.textContent,10);
curPrice+=curPrice;
$(event.target).text(curPrice);
}
$('.price')。单击(addStat)
.price{
背景色:#ace;
高度:25px;
利润率:10px0;
}

1.

3
本声明
var curPrice=price
需要在函数之外,就像这样
var curPrice=0
如果传递的
price
不是一个数字,则需要将其转换,例如
curPrice+=number(price)
Hmm,如何在tho之外使用
price
变量?如果它在按下按钮时进入。或者我遗漏了什么。不是
price
变量,也不是
curPrice
变量,或者每次单击时都会重置它,但初始值必须等于价格。然后单击,将其按价格值增加。由于每个项目的价格不同,在单击按钮时会传递该价格。但无论哪种方式,都会在第一次单击时发生,因为只有在第一次单击时才会有初始值,或者这里缺少一些代码。这是可行的,但有一个问题,它可以通过浏览器的inspect功能进行操作。
$(priceHtml)
看起来完全是重复的,您可以使用
priceHtml
,您应该描述您正在做什么以及为什么要做@AndorNagy我们所做的任何事情都可以通过浏览器的inspect函数或控制台进行操作。@AndorNagy任何事情都可以通过inspector进行操作,甚至可以使用全局变量。所以基本上没有办法绕过它?我应该从html元素中获取值,然后从那里开始?如果你想隐藏一些东西,它不应该在你的前端,我会避免这样做并创建全局变量。这将是一个更大的头痛以后。