JavaScript:Multiple Document.Write

时间:2016-04-01 21:26:46

标签: javascript

我有一个测验,它运作正常。但是,当出现正确问题部分时,不会显示不正确的问题。 (当正确的问题部分不存在时起作用)

正确的脚本问题部分:

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>');

如何在页面上显示不正确的部分?

1 个答案:

答案 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元素,这是我的示例所示)。