Javascript和HTML。如何使警报显示在HTML表单而不是警报框上
我对Javascript相当陌生,我正在尝试将此Javascript代码与HTML集成。此时,当您在浏览器中运行脚本时,它会询问5个数学问题,显示正确的数量,然后显示5个警报框,显示问题、答案、正确答案以及是否正确。现在我想做的是,我希望所有的问题都显示在HTML中,而不是在警报框中显示这些信息Javascript和HTML。如何使警报显示在HTML表单而不是警报框上,javascript,html,forms,Javascript,Html,Forms,我对Javascript相当陌生,我正在尝试将此Javascript代码与HTML集成。此时,当您在浏览器中运行脚本时,它会询问5个数学问题,显示正确的数量,然后显示5个警报框,显示问题、答案、正确答案以及是否正确。现在我想做的是,我希望所有的问题都显示在HTML中,而不是在警报框中显示这些信息 因此HTML上的输出看起来像这些消息框实际上是本机对话框,是web浏览器的一部分,可以调用操作系统。你不能直接做你想做的事。然而,你可以用一个纯JS模式窗口来代替它们,这个窗口是当今众多工具包中的一个,
因此HTML上的输出看起来像这些消息框实际上是本机对话框,是web浏览器的一部分,可以调用操作系统。你不能直接做你想做的事。然而,你可以用一个纯JS模式窗口来代替它们,这个窗口是当今众多工具包中的一个,比如TwitterBootstrap 这是一个关于你所描述的事情的例子。
函数ask(){
VarA=Math.floor(Math.random()*10)+1;
VarB=Math.floor(Math.random()*10)+1;
var op=[“*”、“+”、“/”、“-”][Math.floor(Math.random()*4)];
返回{
问题:“+a+”+op+“+b+”是多少,
ansGiven:prompt(“多少钱是“+a+”+op+”+b+”?”),
回答正确:评估(a+op+b),
get isCorrect(){返回this.ansGiven==this.ansCorrect}
};
}
var questions=[ask(),ask(),ask(),ask(),ask()]
总计=问题。长度,
correct=questions.filter(函数(ans){return ans.isCorrect}).length;
var result=“result
您正确地获得了“+correct+”/“+total+”
”;
问题。forEach(函数(q,i){
结果+=(“问题”+(i+1)+):“+q问题
+“\n答案:”+q.ansGiven
+“\n正确答案:”+q.ansCorrect
+“\n您是”+((q.isCorrect)?“Correct!”:“error!”)+“
”;
});
记录(结果);
您可以尝试在函数中使用jquery,并使用.html()
函数和append()
函数
html()。即:
$('#question').html("<p>" + questionNum + ". What is " + equation + "?</p><input type='number' name='input'><br><input type='submit' value='Check Ans'>");
$('#question').html(“”+questionNum+”。什么是“+equation+”?
”);
然后,对于你的每一个结果,你可能想要做
$('#results').append("<p>Question " + questionNum + " : How much is " + equation + "? - " + result + "</p>");
$(“#结果”)。追加(问题“+questionNum+”:多少是“+equation+”?-“+result+””);
您的html可能如下所示:
<html>
<body>
<div id='question'></div>
<div id='answer'></div>
</body>
</html>
您的最终结果将是:
<html>
<body>
<div id='question'>
<p>5. What is 4 / 2?</p><input type='number' name='input'><br>
<input type='submit' value='Check Ans'>
</div>
<div id='answer'>
<p>Question 1 : How much is 1 + 2? - You were right!</p>
<p>Question 2 : How much is 9 * 21? - You were wrong!</p>
<p>Question 3 : How much is 1 + 42? - You were right!</p>
<p>Question 4 : How much is 32 - 9? - You were right!</p>
</div>
</body>
</html>
五,。什么是4/2?
问题1:1+2等于多少你是对的
问题2:9*21是多少你错了
问题3:1+42等于多少你是对的
问题4:32-9是多少你是对的
编辑:JSFiddle
函数在第17行和第19行使用两个append()
s,一个表示正确,另一个表示不正确。有了这个,下一个答案将被添加到分区的底部。即:1、2、3、4、5、6、7等。在回答了这么多问题后,最新的答案将从屏幕上消失。如果你想最新的问题显示在顶部,即:7,6,5。。。然后将两个附件都更改为prepend()
很好!有没有一种方法可以使用@James为您添加一个jsfiddle来让这个演示工作正常。很好!有没有办法让它停在某个数字上,你认为for循环可以吗?当它达到5时停止,并发出一条消息说你已经完成了测试?好的。所以这可能是个糟糕的问题,但当我将所有这些保存到html文档时。该页面未加载。我注意到您使用jquery来运行程序。如何将jquery实现到html文档中。我已经下载了jquery 1.11.0,并用代码包装了脚本,但这对我来说不起作用。我通常选择从谷歌托管的库中加载jquery,这样我就不必下载任何东西<代码>
。一定要把它放在头标签上。如果您使用的是Chrome(我经常这样做),右键单击页面并查看源代码。然后单击“控制台”选项卡。任何javascript错误都会出现。
<html>
<body>
<div id='question'></div>
<div id='answer'></div>
</body>
</html>
<html>
<body>
<div id='question'>
<p>5. What is 4 / 2?</p><input type='number' name='input'><br>
<input type='submit' value='Check Ans'>
</div>
<div id='answer'>
<p>Question 1 : How much is 1 + 2? - You were right!</p>
<p>Question 2 : How much is 9 * 21? - You were wrong!</p>
<p>Question 3 : How much is 1 + 42? - You were right!</p>
<p>Question 4 : How much is 32 - 9? - You were right!</p>
</div>
</body>
</html>