javascript - Switch 语句不更新 Document.getElementById()

标签 javascript html css

我有一个看起来像这样的 Switch 语句。

switch (rsCash.length){
case 1:
    document.getElementById("cash3").innerHTML = rsCash + "Gp";
    break;
case 2:
    document.getElementById("cash3").innerHTML = rsCash + "Gp";
    break;
case 3:
    document.getElementById("cash3").innerHTML = rsCash + "Gp";
    break;
case 4:
    document.getElementById("cash3").innerHTML = rsCash.substring(0,cut1) + "k";
    break;
case 5:
    document.getElementById("cash3").innerHTML = rsCash.substring(0,cut2) + "k";
    break;
case 6:
    document.getElementById("cash3").innerHTML = rsCash.substring(0,cut3) + "k";
    break;
case 7:
    document.getElementById("cash3").innerHTML = rsCash.substring(0,cut1) + "M";
    break;
case 8:
    document.getElementById("cash3").innerHTML = rsCash.substring(0,cut2) + "M";
    break;
case 9:
    document.getElementById("cash3").innerHTML = rsCash.substring(0,cut3) + "M";
    break;
case 10:
    document.getElementById("cash3").innerHTML = rsCash.substring(0,cut4) + "M";
    break;
case 11:
    document.getElementById("cash3").innerHTML = rsCash.substring(0,cut5) + "M";
    break;

当 rsCash 变量发生变化时,它不会更新。

HTML 是。

<h1 id="RsMoney">RsCash:<b id="cash3">0 Gp</b></h1>

我已经尝试将 switch 语句放在一个每秒都会被调用的函数中,但它仍然不起作用

我已经将整个代码复制并粘贴到 JavaScript lint 中,它没有发现错误,谷歌浏览器也没有发现错误

Variable 在这里被这个函数改变。

function OpenCrate(){
if(Crates != 0){
var RewardNumber = Math.floor((Math.random() * 15)+ 1);
switch (RewardNumber){
case 1:
    rsCash = rsCash + 200000;
    document.getElementById("Log").innerHTML = "$200k was found!";
    break;
case 2:
    rsCash = rsCash + 25000;
    document.getElementById("Log").innerHTML = "$15 was found!";
    break;
case 3:
    rsCash = rsCash + 5000;
    document.getElementById("Log").innerHTML = "5k was found!";
    break;
case 4:
    rsCash = rsCash + 500000;
    document.getElementById("Log").innerHTML = "500k was found!";
    break;
case 5:
    rsCash = rsCash + 75000;
    document.getElementById("Log").innerHTML = "75k was found!";
    break;
case 6:
    rsCash = rsCash + 5000000;
    document.getElementById("Log").innerHTML = "5m was found!";
    break;
case 7:
    rsCash = rsCash + 275000;
    document.getElementById("Log").innerHTML = "275k was found!";
    break;
case 8:
    rsCash = rsCash + 5000;
    document.getElementById("Log").innerHTML = "5k was found!";
    break;
case 9:
    rsCash = rsCash + 15000;
    document.getElementById("Log").innerHTML = "15k was found!";
    break;
case 10:
    rsCash = rsCash + 8000;
    document.getElementById("Log").innerHTML = "8k was found!";
    break;
case 11:
    rsCash = rsCash + 35000;
    document.getElementById("Log").innerHTML = "35k was found!";
    break;
case 12:
    rsCash = rsCash + 125000;
    document.getElementById("Log").innerHTML = "125k was found!";
    break;
case 13:
    rsCash = rsCash + 80000;
    document.getElementById("Log").innerHTML = "80k was found!";
    break;
case 14:
    rsCash = rsCash + 600000;
    document.getElementById("Log").innerHTML = "600k was found!";
    break;
case 15:
    rsCash = rsCash + 12000;
    document.getElementById("Log").innerHTML = "12k was found!";
    break;
}

最佳答案

rsCash 是一个数字:

rsCash = rsCash + 200000;

但是你想把它的长度拉长:

switch (rsCash.length) ...

你不能那样做 - 你得到 undefined,所以你的 case 都没有触发。在获取长度之前,您需要将 rsCash 转换为字符串;像这样:

switch (rsCash.toString().length) ...

关于javascript - Switch 语句不更新 Document.getElementById(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24534332/

相关文章:

javascript - Node.js mongodb 回调问题

html - W3C Validator 告诉我我有一个错误,不知道如何修复

javascript - firefox 中的输入按钮不起作用

javascript - 限制 CSS 网格中的行数

javascript - 安装并运行 keystone.js 后,什么可能导致此错误?

javascript - Cordova Ionic 键盘插件在 “Init” 上完全禁用

javascript - 在服务器端检索 anchor 的颜色

html - 即使左侧 div 有更多数据,也希望左侧 div 与内容 div 匹配大小

javascript - 在第一个 slider 的标题中隐藏 Logo 。是否可以?

javascript - 用js获取溢出高度