在 Javascript 中添加数字时遇到麻烦
Trouble with adding numbers in Javascript?
我想在检查每本书时添加一些书的价格,但我有一个问题。它只是添加一个字符串。例如,当我选择一本书(10$(时,价格变为10,当我选择另一本书(20$(时,价格变为1020,依此类推......
我的代码 : 对于第一册:
<input
name="bookList"
type="checkbox"
id="bookList_1"
onChange="
if (document.getElementById('bookList_1').checked) {
document.getElementById('priceDes').innerHTML=' total: ';
document.getElementById('price').innerHTML+=10;
}
"
value="book1"
>
对于第二册:
<input
name="bookList"
type="checkbox"
id="bookList_2"
onChange="
if (document.getElementById('bookList_2').checked) {
document.getElementById('priceDes').innerHTML=' total: ';
document.getElementById('price').innerHTML+=20;
}
"
value="book1"
>
价格和价格Des是<p>
标签...感谢您的解决方案;)
这是因为您正在连接字符串,而不是添加数字。"10"+"20"给出"1020"而不是30。
尝试: document.getElementById('price').innerHTML=parseInt(document.getElementById('price').innerHTML)+10;
不过要小心,只有当您的p
标签在其 HTML 中只有数字时,它才会起作用。 parseInt('10$')
给了10
,但parseInt('$10')
给了NaN
。您可以尝试使用数字类型输入标签。
document.getElementById('price').innerHTML=Number(document.getElementById('price').innerHTML)+20;
InnerHTML 是一个字符串。+ 运算符也是 JavaScript 中的 String 连接运算符。因此,首先"铸造"值。
在 JavaScript 中"转换"数字字符串的简单方法:乘以 1:
var rv = 1*a.innerHTML + 1*b.innerHTML;
或者,使用 Number 构造函数:
var rv = Number(a.innerHTML) + Number(b.innerHTML);
相关文章:
- 使用JavaScript获取Google地图上显示的所有推文时遇到麻烦
- 在 Javascript 中添加数字时遇到麻烦
- 使用 Coffeescript 和 Express .js 将变量传递给 Jade 时遇到麻烦
- 编写正确的 jQuery 插件时遇到麻烦
- 在三.js中更改纹理时遇到麻烦
- 从 javascript 中的函数返回时遇到麻烦
- 理解 $.ajax() 参数以获取 PHP 变量时遇到麻烦
- 比较数组时遇到麻烦
- 使 JavaScript 函数工作时遇到麻烦
- 在Firefox和IE中获取CSS属性时遇到麻烦
- 将 Blueimp Gallery 与 HTML 和 Bootstrap 集成时遇到麻烦
- 将jQuery导入WordPress时遇到麻烦
- 在解决来自 coderbyte 的 JavaScript 编码挑战时遇到麻烦
- 从页面抓取时遇到麻烦
- 让jQuery在Wordpress中工作时遇到麻烦
- 在codeigniter框架中添加css和js文件时遇到麻烦
- 处理由dayClick返回的日期时遇到麻烦
- 在使用jQuery更改依赖于滚动位置的类时遇到麻烦
- 在使用javascript加速滚动动画时遇到麻烦
- 在跨域jquery/Ajax服务调用中遇到麻烦