Javascript jQuery不需要的求和结果
我有一个默认设置为Javascript jQuery不需要的求和结果,javascript,jquery,Javascript,Jquery,我有一个默认设置为0的表头: <th id="total_price" style="text-align:center">0</th> 我试过这个: var initial = $("#total_price").text(); console.log(initial); var newPrice = initial + +(res['price']); console.log(newPrice);
0
的表头
:
<th id="total_price" style="text-align:center">0</th>
我试过这个:
var initial = $("#total_price").text();
console.log(initial);
var newPrice = initial + +(res['price']);
console.log(newPrice);
$("#total_price").text(newPrice);
但还是一样
您需要将文本(字符串)解析为一个整数,然后将其相加。因此,请执行下面的计算
var newPrice = parseInt(initial,10) + parseInt(res['price'],10);
或者您尝试的是字符串串联,而不是求和
您可以得到您需要将文本(字符串)解析为整数,然后将其相加。因此,请执行下面的计算
var newPrice = parseInt(initial,10) + parseInt(res['price'],10);
或者您尝试的是字符串串联,而不是求和
您可以得到,正如我已经说过的,当您从DOM元素中读取文本时,它被读取为字符串,当您对其应用
+
操作符时,它被视为连接和添加
以下是一个模拟:
(函数(){
var th=$(“th”);
var结果=”;
结果+=“直接加法:”++$(th[0]).text()++$(th[1]).text()++“
”;
结果+=“类型:”+typeof($(th[0]).text())+“
”;
结果+=“Parse Int:”+(parseInt($(th[0]).text())+parseInt($(th[1]).text())+“
”;
$(“#结果”).html(结果);
})()
20000
0
正如我已经评论过的,当您从DOM元素中读取文本时,它被读取为字符串,当您对其应用+
运算符时,它被视为连接和添加
以下是一个模拟:
(函数(){
var th=$(“th”);
var结果=”;
结果+=“直接加法:”++$(th[0]).text()++$(th[1]).text()++“
”;
结果+=“类型:”+typeof($(th[0]).text())+“
”;
结果+=“Parse Int:”+(parseInt($(th[0]).text())+parseInt($(th[1]).text())+“
”;
$(“#结果”).html(结果);
})()
20000
0
您必须使用parseInt()
+
运算符用于字符串的添加和串联。另外,当您读取DOM元素的文本时,它被读取为字符串而不是数字。您有一个正确的解决方案,但忘记将+
放在首字母的后面,因为这也是一个字符串<代码>+首字母++(res['price'])如果您想要小数,您可能应该改为使用parseFloat。此外,如果你想让“30000”或“30000”之类的东西被识别为30000,你必须先去掉它们。执行类似于res['price']的操作。替换(/[,]/g',)
谢谢大家。我很感激。现在它正在使用@squint的注释给出的解决方案和reddy的答案,您必须使用parseInt()
+
运算符用于字符串的添加和串联。另外,当您读取DOM元素的文本时,它被读取为字符串而不是数字。您有一个正确的解决方案,但忘记将+
放在首字母的后面,因为这也是一个字符串<代码>+首字母++(res['price'])如果您想要小数,您可能应该改为使用parseFloat。此外,如果你想让“30000”或“30000”之类的东西被识别为30000,你必须先去掉它们。执行类似于res['price']的操作。替换(/[,]/g',)
谢谢大家。我很感激。现在它正在使用@squint的评论给出的解决方案和Reddy的回答