求和Javascript变量(实际上是字符串)
Sum Javascript variables (strings, actually)
我有三个包含数字的div
。
<div class="a">10</div>
<div class="b">20</div>
<div class="c">30</div>
我用jQuery .html()
得到每个里面的数字。
var val_1 = $('.a').html(),
val_2 = $('.b').html(),
val_3 = $('.c').html();
我该如何对它们求和?
这不会按预期工作:
var total = val_1 + val_2 + val_3;
自从返回 102030,当时我预计 60。
首先,由于您只需要div 的内容,因此最好使用 $('.x').text()
而不是 $('.x').html()
。
现在发生的事情是你正在添加字符串,即连接它们:'1' + '2' + '3soleil' === '123soleil'
.
你想把它们解析成数字,这是用
Number(val1) + Number(val2) + Number(val3)
如果你知道它们是整数,你可以更安全地使用Number.parseInt(val, 10)
(该函数的第二个变量,称为基数,是你的数字的数学基数。它很可能是十进制数 (10),但也可能是十六进制数 (16)、布尔数 (2) 等
jsFiddle Demo
您可以对它们进行分组,使用每个进行迭代,并汇总它们的 parseInt 数量
var val = 0;
$('.a, .b, .c').each(function(){
val += parseInt(this.innerHTML,10);
});
alert(val);
使用parseInt,因为您的div内容被评估为字符串:
var val_1 = parseInt($('.a').html(),10),
val_2 = parseInt($('.b').html(),10),
val_3 = parseInt($('.c').html(),10);
在每个变量上使用parseInt()
;现在它将它们视为字符串并将它们连接起来。
你需要使用 parseInt() 将从 .html() 返回的字符串值解析为 int。
var val_1 = parseInt($('.a').html())
如果您不想键入 (var + var),则可以执行以下操作。
首先,代码中的问题是您的变量被解释为字符串,我们可以强制使用 INT 数据类型,例如。
val_1 = parseInt($('.a').html()),
val_2 = parseInt($('.b').html()),
val_3 = parseInt($('.c').html());
然后我们将变量聚合成一个整洁的数组,然后执行 .reduce()
函数,这是一个求和函数。
var aggregate = array(val_1, val_2, val_3);
aggregate.reduce(function(a,b){return a + b})
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- jQuery中是否内置了任何字符串格式化函数
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- ng打开空字符串
- 正则表达式在字符串中找到base64
- 如何将字符串值从php页面发送到java脚本页面
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 对id以某个字符串开头的元素进行计数
- Javascript逻辑运算符和字符串/数字
- 反向字符串比较
- 如何有效地将游戏数据存储在URL查询字符串中
- 可变大小的JavaScript字符串如何成为基元类型
- 将DOM节点值与字符串Javascript进行比较
- 如何在 Javascript 中将变量的值从字符串转换为整数
- 如果数组键实际上是字符串,那么数组和对象的区别是什么
- 如何在从 javascript 中的 json 对象中提取字符串时保留转义序列.(字符串实际上是正则表达式模式)
- Typescript接口中的日期在检查时实际上是字符串
- Javascript字符串计算从PHP变量包含数学表达式(但实际上是一个日期)
- 求和Javascript变量(实际上是字符串)