我有一个测验,它运作正常。但是,当出现正确问题部分时,不会显示不正确的问题。 (当正确的问题部分不存在时起作用)
正确的脚本问题部分:
var cmessage = '<p>You got ' + score;
cmessage += ' out of ' + questions.length;
cmessage += ' questions correct.<br>' + '<p>' + '<p> Correct Answers: ' + '<br>';
for(var c in cA) {
cmessage += questions[cA[c]][0] + '<br>' + questions[cA[c]][1] + '<br>';
}
document.write('<br>' + cmessage + '</br>');
问题部分不正确:
var imessage = '<br><br><p>You answered ' + incorrect.length;
imessage += '<p> questions incorrect. Your incorrect questions: </p>';
for(var i in incorrect){
imessage += '<p> ' + questions[incorrect[i]][0] + '<br>' + questions[incorrect[i]][1] + ' </p>';
}
document.write('<p>' + imessage + '</p>');
如何在页面上显示不正确的部分?
答案 0 :(得分:-1)
使用innerHTML将结果添加到DOM中的div。
var imessage = '<b>foo</b>';
var cmessage = '<b>bar</b>'
var divCorrect = document.getElementById('correct');
var divIncorrect = document.getElementById('incorrect');
divCorrect.innerHTML = cmessage;
divIncorrect.innerHTML = imessage;
<div id="correct"></div>
<div id="incorrect"></div>
回应此评论无关的评论:
我提出了这个解决方案,因为OP的问题源于使用document.write,它覆盖了DOM中的所有内容。 document.write的第二次使用将覆盖第一次使用时添加的内容。因此,适当的方法是修改DOM中的元素。这可以使用innerHTML完成。使用innerHTML而不是document.write将阻止第二个修改覆盖第一个(假设两个修改针对不同的DOM元素,这是我的示例所示)。