Jquery .attr(';checked';)不会告诉我该单选按钮已选中,即使它已被选中

Jquery .attr(';checked';)不会告诉我该单选按钮已选中,即使它已被选中,jquery,radio-button,attr,checked,Jquery,Radio Button,Attr,Checked,我的第一个问题!。。。我是一名大学生,想做一个简单的选择题测验。我几乎完成了它(基本内容),但无法计算用户的最终分数。这个测验可以在网上看到:(这只是测验,所以没有其他让人分心的代码) 我认为这种方法很简单: 1.以0分开始。 2.当用户点击“答案”按钮时,(针对每个问题),检查是否选中了正确答案旁边的单选按钮 3.如果是,则在分数上加1 4.如果不是,则什么也不做 5.检查完最后一个问题后,向用户公布分数 除了.attr('checked')部分之外,所有代码似乎都工作正常。我将其替换为.va

我的第一个问题!。。。我是一名大学生,想做一个简单的选择题测验。我几乎完成了它(基本内容),但无法计算用户的最终分数。这个测验可以在网上看到:(这只是测验,所以没有其他让人分心的代码)

我认为这种方法很简单:
1.以0分开始。
2.当用户点击“答案”按钮时,(针对每个问题),检查是否选中了正确答案旁边的单选按钮
3.如果是,则在分数上加1
4.如果不是,则什么也不做
5.检查完最后一个问题后,向用户公布分数

除了.attr('checked')部分之外,所有代码似乎都工作正常。我将其替换为.val()&分数加起来很好,并在最后宣布。但是,即使检查了正确答案,分数也不会加1。我以前看到过.attr('checked')的作用——它检查了复选框“同上”是否被选中:如果被选中,div就会滑出视图;如果不选中,div将滑回到视图中。但我不能让任何事情发生

以下代码是一个简化版本(仅问题1,只有2个答案选项):

HTML


  • 1。有水平矩形瞳孔的动物是: 山羊 大象
JAVASCRIPT

<script>
$(document).ready(function()  {


            var score=0, 
                $questionAndAnswer=$('.quizQuestionAndAnswer');

    $questionAndAnswer.on('click', '.answersQuizButton', function()   {

        if(  $('#question1answerA').attr('checked')   )   {
            score=score+1;
        }  //end if
        if(  $('#question2answerC').attr('checked')   )   {
            score=score+1;
        }  //end if

        alert(score);

    });  //end on (click)

});  //end ready
</script>

$(文档).ready(函数(){
var得分=0,
$questionAndAnswer=$('quizQuestionAndAnswer');
$questionAndAnswer.on('click','answersQuizButton',函数(){
如果($('#问题1答案').attr('checked')){
分数=分数+1;
}//如果结束,则结束
if($('question2answerC').attr('checked')){
分数=分数+1;
}//如果结束,则结束
警惕(得分);
});//结束于(单击)
});  //准备就绪
我非常感谢您的建议! :)uphillfun ps:我使用的是jQuery1.11.0,Firebug控制台没有显示任何错误

您可以改为使用:

if($('#question1answerA').prop('checked'))

检查该框是否选中的其他方法

$('#question1answerA')[0].checked

prop
在这里返回一个布尔值:将其与
true
进行比较是没有意义的。我尝试了.prop('checked'),它工作得很好!我以前没有听说过这个函数(我是jQuery的一名大学生)。你能告诉我它为什么起作用吗?根据我的教科书,attr(‘checked’)应该可以工作(教科书中有一个例子,但是使用复选框,而不是单选按钮。)您尝试使用名为“checked”的自定义属性,但该属性在radio元素中不存在。希望有帮助:)@Alexandros非常感谢!我想“接受”你的答案,但不知道怎么做!。。。。。编辑:刚刚想出来!在我的第一个问题上取得胜利,谢谢你!只是好奇-哪里定义了
$questionAndAnswer
呢?顺便说一句,我会告诉你它不起作用的原因。道歉,我对这是个新手(&紧张!)。我刚刚编辑了这个问题,加入了你提问的变量。它在原始代码中。:)Np,一定要检查我提供的链接,它告诉你为什么
.attr()
不起作用,但是
.prop()
会起作用。这些建议有点超出我的理解力,因为我是新手,但我一定要检查它们!谢谢:)
$('#question1answerA')[0].checked
$('#question1answerA:checked').length
$('#question1answerA').is(':checked')