这是一个问题测验。当你选择答案并点击"提交" 应输出你的答案和你的分数。
问题是它没有阅读" var response"正确 - 它未定义。
我希望第二眼可以帮助我解决问题
感谢所有帮助:)
<p id="question">
<button type="button" class="start" onclick="test();">Start</button>
</p>
<p id="here"></p>
<script>
function test() {
document.getElementById("question").innerHTML =
"<p>What color is the sky? <select id='list' onchange='score();'><option value='Not Sure' selected>Not Sure</option><option value='Blue'>Blue</option><option value='Red'>Red</option></select></p><button type='button' onclick='submit();'>submit</button>";
}
var total = 0;
var response = document.getElementById('list').value;
function score() {
var response = document.getElementById('list').value;
if (response === "Blue") {
total++;
}
}
function submit() {
document.getElementById("here").innerHTML =
"Your Answer:" + response + "<br />" + total + "/1";
}
</script>
答案 0 :(得分:2)
您目前有两个response
变量,第一个是全局变量,并且分配给尚未存在的字段中的值,第二个变量是score()
函数中的本地变量。
您需要在函数外部声明变量,但在<{1}}内设置其值:
score()
&#13;
function test() {
document.getElementById("question").innerHTML =
"<p>What color is the sky? <select id='list' onchange='score();'><option value='Not Sure' selected>Not Sure</option><option value='Blue'>Blue</option><option value='Red'>Red</option></select></p><button type='button' onclick='submit();'>submit</button>";
}
var total = 0;
var response = "Not sure";
function score() {
// 'var' removed from following line:
response = document.getElementById('list').value;
if (response === "Blue") {
total++;
}
}
function submit() {
document.getElementById("here").innerHTML =
"Your Answer:" + response + "<br />" + total + "/1";
}
&#13;
(另外,不是您要问的问题,但是从select元素的<p id="question">
<button type="button" class="start" onclick="test();">Start</button>
</p>
<p id="here"></p>
调用score()
是没有意义的,因为如果用户更改了他们的思维从蓝色到红色来回几次,然后onchange
变量增加了几次,他们可以获得像total
这样的分数。最好做所有计算以响应提交点击按钮。)
答案 1 :(得分:0)
您可以删除&#34; var&#34;在下面的方法里面,它重新定义了函数范围内的全局变量。
function score() {
response = document.getElementById('list').value;
if (response === "Blue") {
total++;
}
}
答案 2 :(得分:0)
问题似乎在于这一行
$(function () {
解析此行时,dom中不存在标识为var response = document.getElementById('list').value;
的元素。因此,您正在看list
。
您可以尝试在undefined
函数
test