我有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
部分,那么它就会中断。但这似乎太长了。
解决这个问题的最简单逻辑是什么?
提前致谢
答案 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 :(');
}
});