使用if语句

时间:2015-06-10 13:48:01

标签: javascript jquery html

我有5个div标签都具有相同的ID“回答”这些div标签需要执行此脚本:document.getElementById("answer").innerHTML = answer;

触发时(已完成,但仅供参考):

var arrAnswers = ["specialword", "word1", "word2" "word3" "word4"];
socket.on('answer', function (answer) {
    console.log('answer: ' + answer);
        if ( $.inArray(answer, arrAnswers) > -1 ) {
            console.log('correct answer!');
        } else {
            console.log('incorrect answer :(');
        }
});

我的HTML中有这个:

<div class="answer"></div>
<div class="answer"></div>
<div class="answer"></div>
<div class="answer"></div>
<div class="answer"></div>

我需要做到这一点,如果答案是正确的,它会选择一个空的div标签,并用变量“answer”中指定的答案填充它。

理论上,如果innerhtml为空,我可以执行if语句,但这也会返回其他结果。我也可以做一个if else语句,所以它会查询它是否为空,如果是.innerhtml部分,那么它就会中断。但这似乎太长了。

解决这个问题的最简单逻辑是什么?

提前致谢

1 个答案:

答案 0 :(得分:1)

在这里,您可以使用document.getElementsByClassName("answer")数组,使用Math.random() * lengthOfArray生成随机数,然后使用索引器访问元素并为该元素设置innerHTML。所以这看起来像这样:

var arrAnswers = ["specialword", "word1", "word2" "word3" "word4"];
var answers = document.getElementsByClassName("answer");
var index = Math.random() * answers.length;
socket.on('answer', function (answer) {
    console.log('answer: ' + answer);
        if ( $.inArray(answer, arrAnswers) > -1 ) {
            console.log('correct answer!');
            answers[index].innerHTML = answer; //set answer
        } else {
            console.log('incorrect answer :(');
        }
});