发布网友 发布时间: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就好了,通常数*算需要把字符串转换成数字才行,不然会被当成字符串拼接,希望能帮到你。