信息:jQuery 1.6.0
HTML复选框:

首先,我确保jQuery已加载:

if(jQuery) {
    alert("loaded");
}

就是这种情况,它已加载。
然后紧接着我使用的那一行:
var returnvalue = jQuery("#mycheckbox").attr("checked");
alert(returnvalue);

由于某种原因,这始终会警告“未定义”。我100%确认ID存在。我也尝试了以下方法:
jQuery("#mycheckbox").find('input[type="checkbox"]').each(function(){
    alert("foo");
    if (jQuery(this).is(":checked"))
        ReturnVal = true;
});

但这甚至没有弹出警报。

我究竟做错了什么?我到目前为止是jQuery或Javascript专家,但这应该可以工作...对吗?

编辑:
我试过了:
jQuery(document).ready(function() {
    alert(id);
    var returnvalue = jQuery("#" . id).prop("checked");
    alert(returnvalue);
});

alert(id)给我正确的ID,但是alert(returnvalue)返回未定义。

我也尝试过:
if(jQuery) {
    alert("loaded");
}
jQuery(function() {
    alert(id);
    var returnvalue = jQuery("#" . id).attr("checked");
    alert(returnvalue);
});

结果相同

编辑2:
使用.prop并在ID后面附加“+”而不是“。”后(PHP习惯),它可以工作。谢谢大家的帮助!

最佳答案

  • 如果您使用的是jQuery 1.6或更高版本,请使用prop()而不是attr():

  • var returnvalue = jQuery("#mycheckbox").prop("checked");
    

    这是因为如果您没有在元素中包含显式的checked属性,则该属性为undefined,尽管该属性具有其默认值。

  • 您需要消除.find():

  • jQuery("#mycheckbox").each(function(){
        alert("foo");
        if (jQuery(this).is(":checked"))
            ReturnVal = true;
    });
    

    在问题中包括您的HTML将很有帮助。

    09-10 07:27
    查看更多