js中字符串和数字相加,如何让其变成数字与数字相加?

发布网友 发布时间:2022-04-22 06:57

我来回答

3个回答

热心网友 时间:2022-06-17 01:43

用纯js的话下面这样写:

<span id="a">10</span> <span id="b">11</span>

<span id="c"></span>

<script>

   var a=document.getElementById("a").innerHTML;

   var b=document.getElementById("b").innerHTML;

   var c=Number(a) + Number(b);

   document.getElementById("c").innerHTML=c;

</script>

parseFloat或者parseInt转换下,不然会当做字符串拼接的。我们这里用的Number来转换,此外还有parseFloat或者parseInt这两个转换函数。

另外,如果你会jQuery的话获取字符串内容那儿可以更加简单点。

<script>

   var a=$("#a").html();

   var b=$("#b").html();

   var c=Number(a) + Number(b);

   $("#c").html(c);

</script>

热心网友 时间:2022-06-17 01:44

求和就跟数学一样,直接相加就可以了啊。
我猜你的问题出在获取span的内容上,如果你直接用 a.innerHTML + b.innerHTML ,得到的不是21,而是1011。
原因并不是因为 js 中不能直接进行加法运算,而是因为数据类型导致。
要记住一点:所有通过标签获取到的内容,都是字符串。
也就是说,通过标签的, value, innerHTML 等得到的值,都是一个字符串值,而js中,用加号来对字符串进行求和,实际是做字符串连接。比如 '1' + '2' ,得到的是 '12',而不是3. 因为加号左右都是字符串。在js 中,只要加号的任何一边的值是字符串,最终都是进行字符串连接,而不是求和。
想要实现求和,就需要把字符串变成数字,再使用加号,在js中,将字符串变成数字最简单的做法是乘以1,比如 '1'*1 + '2'*1 ,结果就是3了。这个属于JS的隐式类型转换,如果你学过这个知识点,自然知道是什么意思 ,如果还没学过,那就先知道这个技巧就行。
所以你上面的效果,要实现求和,只需要这样:
a.innerHTML * 1 + b.innerHTML * 1, 就可以实现求和啦。

热心网友 时间:2022-06-17 01:44

let a=document.getElementById("a").innerHTML;
let b=document.getElementById("b").innerHTML;
let c=Number(a) + Number(b);
这样再把结果给c就好了,通常数*算需要把字符串转换成数字才行,不然会被当成字符串拼接,希望能帮到你。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com