Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么.attr()方法在jQuery 1.9中不起作用_Javascript_Jquery - Fatal编程技术网

Javascript 为什么.attr()方法在jQuery 1.9中不起作用

Javascript 为什么.attr()方法在jQuery 1.9中不起作用,javascript,jquery,Javascript,Jquery,我在1.8.3中使用过这个属性,但现在似乎不起作用 if ($("#checkbox").attr("checked")) { alert("Checked"); } else { alert("Not checked"); } 检查上述代码在1.8.3中的作用 检查同一代码不适用于1.9的地方,您不应该使用.attr查看是否选中了复选框-1.9。改用.prop。试试: if ($("#checkbox").i

我在1.8.3中使用过这个属性,但现在似乎不起作用

 if ($("#checkbox").attr("checked")) 
    {
    alert("Checked");
    }
    else
        {
        alert("Not checked");
        }
检查上述代码在1.8.3中的作用

检查同一代码不适用于1.9的地方,您不应该使用.attr查看是否选中了复选框-1.9。改用.prop。

试试:

if ($("#checkbox").is(":checked")){
    alert("Checked");
}
else{
    alert("Not checked");
}
从jQuery1.6开始,该方法提供了一种显式检索属性值的方法,而.attr检索属性

使用.prop而不是.attr

另外,您正在使用.live-in-in-the-fiddle,这在您使用的jquery版本中是不受支持的, 你需要使用.on而不是.live

演示-->

您可以执行以下操作:

if ($("#checkbox").prop("checked")){
    alert("Checked");
}
else{
    alert("Not checked");
}
如API文件所述:-

在jQuery1.6之前,.attr方法有时采用属性值 在检索某些属性时考虑,这可能导致 不一致的行为。从jQuery1.6开始,.prop方法提供 显式检索属性值的方法,而.attr检索 属性


checked不是checkbox的属性。它是一个属性。在使用jquery 1.6 attr更改checkbox的checked属性之前,该属性是错误的,因此在较新版本中被删除。因此,作为新功能添加了prop以更改控件的属性

阅读文档:要检索和更改DOM属性,如表单元素的选中、选中或禁用状态,请使用.prop方法。获得了更多的否决票,但仍然可以。我只是想澄清一下,希望否决票不仅仅是因为问题很简单!!另外,我不认为这是一个重复的任何问题,因为我面临的问题是不一样的,它是不赞成在1.9!?因为在1.8中也是如此。3@vignesh例如它真的被移除了。链接解释了。它没有被弃用。。。您使用它的方式是。在处理非输入元素属性时,attr仍然是首选方法,我猜用户交互不会对属性进行本机更改。感谢palash,现在在1.9+中。attr仅用于设置一些AttributeEyah,用于设置和检索属性。。