TypeError.val()不是Javascript上所选答案的函数
我正在尝试检查所选答案是否正确,如果正确,则应将+1添加到我的用户分数中。 但我不明白为什么我的代码不起作用。你能帮我把臭虫放在哪里吗?或者我错过了什么TypeError.val()不是Javascript上所选答案的函数,javascript,jquery,html,arrays,object,Javascript,Jquery,Html,Arrays,Object,我正在尝试检查所选答案是否正确,如果正确,则应将+1添加到我的用户分数中。 但我不明白为什么我的代码不起作用。你能帮我把臭虫放在哪里吗?或者我错过了什么 function loadNextQuestion () { var selectOption = document.querySelector('input[type=radio]:checked'); if (selectOption.val() == questions[answer]) { ++userScore;
function loadNextQuestion () {
var selectOption = document.querySelector('input[type=radio]:checked');
if (selectOption.val() == questions[answer]) {
++userScore;
} else if (selectOption) {
++currentQuestionNum;
loadQuestion();
loadQuestionNum();
} else {
alert("Please pick an answer.");
}
};
$("#nextButton").click(loadNextQuestion);
});
您的单选按钮元素不在jQuery包装器对象中,因此jQuery方法val()将不起作用 试一试
相反。您的单选按钮元素不在jQuery包装器对象中,因此jQuery方法val()不起作用 试一试
相反。您的代码不工作的原因是您正在将布尔值(
selectOption.val()
[这是错误的-它应该是selectOption.value
])与数组的元素(问题[答案]
)进行比较,然后在else if
语句中询问selectOption
是否为真。此代码将始终运行
修复代码只需要您更改以下内容:
if (selectOption.val() == questions[answer]) {...}
变成这样:
if (selectOption.attr("id") == questions[answer]) {...}
<input type="radio" id="Chocolate-ice-cream" />
var questions = ["Chocolate is used in what flavour of ice cream", "Chocolate-ice-cream", ...];
使用如下HTML:
if (selectOption.attr("id") == questions[answer]) {...}
<input type="radio" id="Chocolate-ice-cream" />
var questions = ["Chocolate is used in what flavour of ice cream", "Chocolate-ice-cream", ...];
希望我所说的有道理,但如果你什么都不懂,请告诉我。你的代码不起作用的原因是因为你正在将布尔值(
selectOption.val()
[这是错误的-应该是selectOption.value
])与数组元素(问题[答案]
)进行比较,然后在else if
语句中询问selectOption
是否为真。此代码将始终运行
修复代码只需要您更改以下内容:
if (selectOption.val() == questions[answer]) {...}
变成这样:
if (selectOption.attr("id") == questions[answer]) {...}
<input type="radio" id="Chocolate-ice-cream" />
var questions = ["Chocolate is used in what flavour of ice cream", "Chocolate-ice-cream", ...];
使用如下HTML:
if (selectOption.attr("id") == questions[answer]) {...}
<input type="radio" id="Chocolate-ice-cream" />
var questions = ["Chocolate is used in what flavour of ice cream", "Chocolate-ice-cream", ...];
希望我所说的有道理,但如果你什么都不懂,请告诉我。你能发布所有相关的HTML和JavaScript代码吗?我们看不到
loadQuestion()
和loadQuestionNum()
是什么,也看不到数组questions
或变量answer
。请用相关代码更新您的帖子。这种错误在使用jQuery库时经常发生。为了避免这些问题,您可以选择使用jQuery而不是纯JS,或者相反。请发布所有相关的HTML和JavaScript代码好吗?我们看不到loadQuestion()
和loadQuestionNum()
是什么,也看不到数组questions
或变量answer
。请用相关代码更新您的帖子。这种错误在使用jQuery库时经常发生。为了避免这些问题,您可以选择jQuery替代方案而不是纯JS,或者相反。谢谢,我已经尝试过了,而且效果不错。我会更加小心,不要在同一个函数中混合使用JS和JQuery。谢谢,我已经尝试过了,而且效果很好。我会更加小心,不要在同一个函数中混合使用JS和JQuery