Javascript 为什么.attr()方法在jQuery 1.9中不起作用
我在1.8.3中使用过这个属性,但现在似乎不起作用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
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,用于设置和检索属性。。