javascript - html 文本中的分数字段在尝试 = -= 值时充当字符串

标签 javascript html

我正在尝试制作一个计分板,它奇怪地添加了数字:

我的html:

<div id="game-info">
   Top score: <p id="top-score">0</p><br>
    Current score: <p id="current">0</p><br>
    Games played: <p id="played-games">0</p>
</div>

我的 JavaScript:

var score = document.getElementById("current");
if(blabla scored points){
     score.innerHTML += 100;
}
if(blabla scored -points){
    score.innerHTML -= 10;
}

负分工作得很好,至少它加起来是负数,但正分会自动添加到当前分数的末尾,如下所示:

Current score: <p id="current">0100</p><br>

Current score: <p id="current">-20100</p><br>

这与它是字符串而不是整数有什么关系吗?我很困惑为什么在相同的标记下负分起作用而正分不起作用..

最佳答案

连接字符串...您需要首先将当前分数转换为数字 - 尝试如下操作:

var score = document.getElementById("current");
if(blabla scored points){
     // parse current score as integer and then add 100
     score.innerHTML = parseInt(score.innerHTML,10) + 100;
}
if(blabla scored -points){
    // parse current score as integer and then subtract 10
    score.innerHTML = parseInt(score.innerHTML,10) - 10;
}

parseInt()将字符串解析为整数

额外注意:使用parseInt()并使用基数时

An integer that represents the radix of the above mentioned string. Always specify this parameter to eliminate reader confusion and to guarantee predictable behavior. Different implementations produce different results when a radix is not specified.

关于javascript - html 文本中的分数字段在尝试 = -= 值时充当字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15657773/

相关文章:

javascript - 可以设置 iframe 的 src 并随后操作其内容吗?

javascript - JQuery 发布未在 PHP 文件中运行代码

javascript - 我应该使用 props 还是 states 来传递数据?

javascript - 将键/值对传递给 Angular 过滤器

html - anchor 标签之间的空白

php - 从 php html 中的 sql 结果填充下拉列表中获取选定的值

javascript - 如何使用 lodash map/countBy/groupBy 处理 JSON 字段?

javascript - 如何在 Jasmine/React 中使用范围输入测试 `onChange` 事件

javascript - 单击放大文本区域

html - 在移动设备上,字体大小因段落数而异