if/else运算符未更改
if/else operators not changing
我正在根据得分用不同的GameOver文本编码游戏
这是代码:
<div id="game-over">
<h3><font color="orange">Tu as courus <span id="score"></span> mètres.</font></h3>
<font color="orange"><h1 id="customegotext">oldHeader</h1></font>
<a href="javascript:void(0)" class="button restart">Ressayer ?</a>
</div>
</div>
<script>
var scoretext;
if (score < 45) {
scoretext = "Text1";
} else if (score > 100 ) {
scoretext = "Text2";
} else if (score > 500 ) {
scoretext = "Text3";
} else if (score > 750 ) {
scoretext = "Text4";
} else {
scoretext = "Text5";
}
document.getElementById("customegotext").innerHTML = scoretext;
</script>
问题是无论分数是多少,它总是显示"text5"
感谢您帮助
精度:
所有代码都在索引中。HTML文件
值"score"由以下代码在.JS文件中定义
//定义变量var播放器,得分,停止,股票行情;
我是编码的初学者
问题是无论分数是多少,它总是显示"text5"
有两个原因:
-
score
是一个HTMLElement,而不是一个数字。它是一个由浏览器创建的自动全局变量,因为您已经给定了元素id="score"
。要访问其值,您需要使用score.value
,它是字符串。您可以通过各种方式将该字符串转换为数字;这个答案描述了他们。 -
你正在运行你的脚本,一开始只运行一次。当
score
元素的值发生变化时,没有任何东西会使它在以后自动运行。你需要有目的地这么做。搜索"JavaScript事件处理"、"DOM事件处理"或类似内容,了解如何设置DOM事件处理程序。
附带说明:我不喜欢依赖自动全局变量,尤其是因为浏览器中的全局名称空间非常拥挤,而且一些id
值不会获得自动全局,因为它们会与现有全局变量冲突。相反,我建议使用document.getElementById("score")
来获取HTMLElement实例。
Js不知道更改的html内容,所以您必须检查跨度内的值,如下所示:
var score = document.getElementById("score").value;
每次要重置文本时,都必须定义分数。
此外,当您打开页面时,您的脚本只执行一次,因此它将获得默认html的值undefined
,因为您的跨度是空的。这就是为什么你得到"Text5"
。
如果要动态地执行此操作,则必须创建一个事件,例如当用户单击某个按钮时。
- 这是什么 ==- javascript 运算符
- 如何在ReactJS JSX中执行嵌套的if-else语句
- 正在尝试使用if和else添加类,但无法正常工作
- jQuery/JS包含运算符或类似运算符
- Javascript逻辑运算符和字符串/数字
- 模运算符前的双水平线
- jQuery's trim()的前缀为not运算符
- Javascript,如果条件在没有&&逻辑运算符当&&它不起作用
- 如果在构造函数中有“返回”,则在 JavaScript 中的新运算符中做了什么
- Javascript Return and if/else
- 如何使用排列运算符来获取具有命名参数的函数的所有参数
- if/else运算符未更改
- JavaScript if/else 和 Comparison/relational 运算符
- 我应该使用 if-then-else 或 and or 运算符来检查 Javascript 中的空值吗?
- 语法错误:If else三元运算符中的ES6开关大小写
- 将JavaScript三元运算符转换为完整的if/else语句问题
- 条件运算符和IF..ELSE语句的问题
- Do三元运算符在所有情况下都需要一个else块
- javascript中不能DRY if-else(条件三元运算符)的简写
- 在此块中将嵌套的条件运算符替换为 if/else