在javascript中,文本有时会显示,有时则不会显示

问题描述 投票:1回答:1
var enemies = [
                {
                    "name" : "Green Slime",
                    "health" : 30,
                    "attacks" : [
                                {
                                    "name" : "Bounce",
                                    "damage" : 10,
                                    "selfDamage" : 0
                                },
                                {
                                    "name" : "Self Destruct",
                                    "damage" : 30,
                                    "selfDamage" : 30
                                }
                    ]
                },
                {
                    "name" : "Blue Slime",
                    "health" : 60,
                    "attacks" : [
                                {
                                    "name" : "Bounce",
                                    "damage" : 20,
                                    "selfDamage" : 0
                                },
                                {
                                    "name" : "Shine",
                                    "damage" : 30,
                                    "selfDamage" : 0
                                },
                                {
                                    "name" : "Self Destruct",
                                    "damage" : 60,
                                    "selfDamage" : 60
                                }
                    ]
                }
 ];
var enemyText = " Has decided to battle you!";
function $(input, type) {
    if (type == "id") {
        return document.getElementById(input);
    }
    else {
        return document.getElementsByClassName(input);
    }
}
function Fight() {
    var a = Math.floor(Math.random() * enemies.length);
    var enemy = enemies[parseInt(a)]
    var enemyName = enemies[parseInt(a)].name;
    $("FightText", "id").innerHTML = "A " + enemyName + enemyText;
    while (enemy.health > 0) {
        var b = Math.floor(Math.random() * enemy.attacks.length)
        var attack = enemy.attacks[b]
        $("FightText", "id").innerHTML += "<br>" + enemyName + " Used " + attack.name + "! <i>Dealt " + attack.damage + " damage</i>";
        enemy.health -= attack.selfDamage;
    }
}

因此,当我重复运行Fight函数时,它有时不会显示敌人使用的攻击。就像在,它可能只显示A Blue Slime Has decided to battle you!而不是实际说出它使用的攻击。 有人知道如何解决这个问题吗?

请注意,我倾向于向其他人提出明显的问题,所以,是的。这一点可能很明显。

javascript html css html5
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.