首页 > 解决方案 > 这段代码不起作用&他们是不是使用 else if 语句更有效的方式来做到这一点?

问题描述

我是这一切的新手,我有一个大学项目,似乎无法让它工作,而且似乎有很多重复的代码,任何帮助都会很棒,谢谢。

var strength = document.getElementById('getstren');
strength.innerHTML = Math.floor((Math.random() * 17) + 1);

    if (strength == 1) {
        document.getElementById('ath').innerHTML = "-5"

    }else if (strength == 2 || strength == 3) {
        document.getElementById('ath').innerHTML = "-4"

    }else if (strength == 4 || strength == 5) {
        document.getElementById('ath').innerHTML = "-3" 

    }else if (strength == 6 || strength == 7) {
        document.getElementById('ath').innerHTML = "-2"
    }
    else if (strength == 8 || strength == 9) {
        document.getElementById('ath').innerHTML = "-1"
    }
    else if (strength == 10 || strength == 11) {
        document.getElementById('ath').innerHTML = "0"      
    }
    else if (strength == 12 || strength == 13) {
        document.getElementById('ath').innerHTML = "1"
    }
    else if (strength == 14 || strength == 15) {
        document.getElementById('ath').innerHTML = "2"  
    }
    else if (strength == 16 || strength == 17) {
        document.getElementById('ath').innerHTML = "3"
    }
    else if (strength == 18) {
        document.getElementById('ath').innerHTML = "4"
    }

我认为它应该显示一个力量数字,并且应该根据第一个数字显示另一个运动数字!

标签: javascripthtmlif-statement

解决方案


首先,您需要访问innerHTMLofstrength和 useparseInt使其成为整数。其次,您可以使用以下语句使您的代码更简单:document.getElementById('ath').innerHTML = Math.floor(strength / 2) - 5.

var strength = document.getElementById('getstren');
strength.innerHTML = Math.floor((Math.random() * 17) + 1);
document.getElementById('ath').innerHTML = Math.floor(parseInt(strength) / 2) - 5;

推荐阅读