document.getElementById不会给我“样式”来改变背景颜色

时间:2015-06-12 22:34:23

标签: javascript html css

所以我有一个“滚动”骰子的功能,我正在使用netbeans来编写我的程序,所以当我写“document.getElementById”时。我没有得到“风格”选项,而是唯一的“s”是“封印”....我试图忽略它并以任何方式编写,仍然无效,这是我的代码:

    <script>
        function roll()
        {
            var firstDie = document.getElementById("dice1");
            var secondDie = document.getElementById("dice2");

            firstDie.innerHTML = Math.floor(Math.random() * 7);
            secondDie.innerHTML = Math.floor(Math.random() * 7);

            if (firstDie>secondDie)
            {
                document.getElementById("dice1").style.backgroundColor = "green";
            }
        }
    </script>
</head>
<body>
    <div class="game">
        <div id="dice1" class="dice">0</div>
        <div id="dice2" class="dice">0</div>

        <div id="feed" class="feed">
        <br><br>
        <button onclick="roll()" id="rollButton" class="rollButton">Roll</button>
        </div>
    </div> 

2 个答案:

答案 0 :(得分:2)

它只是没有输入if声明,因为domElement > otherElement将是false

document.createElement('div') > document.createElement('div') //false

你想要的是:

var firstDieValue = Math.floor(Math.random() * 7),
    secondDieValue = Math.floor(Math.random() * 7);

firstDie.innerHTML = firstDieValue;
secondDie.innerHTML = secondDieValue;

if (firstDieValue > secondDieValue) { ... }

另外,考虑提取骰子滚动策略,例如:

var diceRoll = randomDiceRoll(2),
    firstDieValue = diceRoll[0],
    secondDieValue = diceRoll[1];

function randomDiceRoll(diceCount) { 
    return Array.apply(0, Array(diceCount)).map(function () { 
        return Math.floor(Math.random() * 7); 
    }); 
}

答案 1 :(得分:1)

这是因为您没有将div值的内容解析为整数:

        var a  = Math.floor(Math.random() * 7);
        var b = Math.floor(Math.random() * 7);
        firstDie.innerHTML = a;
        secondDie.innerHTML = b;

        if (a>b)
        {
            document.getElementById("dice1").style.backgroundColor = "green";
        }
    }

http://jsfiddle.net/bnspfg7p/5/