$('#operatordelivery').attr('checked', true);
您好,我目前正致力于将jQuery版本迁移到jQuery-2.1.1,我可以在控制台JQMIGRATE: jQuery.fn.attr('selected') may use property instead of attribute
中看到警告。我没有清楚地知道这个警告解释了什么。有人能告诉我这个错误意味着什么吗?
答案 0 :(得分:8)
来自JQMIGRATE docs:
JQMIGRATE:jQuery.fn.attr(' selected')可能使用属性而不是属性
原因:在jQuery 1.9之前,$()。attr("已检查")等有时会 使用checked | selected属性而不是属性when 与非XML元素交互,尽管浏览器和 HTML规范允许属性(当前状态)不同 来自属性(初始/默认状态)。这是一个延续 早期版本的jQuery没有提供$()。prop。
解决方案:通常不应将布尔属性传递给 $()。attr;除非你真的打算用$()。prop替换 更新基础HTML属性。
属性和属性之间的区别非常重要 具体情况。在jQuery 1.6之前,有时会使用.attr()方法 在检索某些属性时考虑了属性值, 这可能会导致行为不一致。从jQuery 1.6开始,.prop() 方法提供了一种显式检索属性值的方法 .attr()检索属性。
jQuery docs:http://api.jquery.com/prop/
参考答案SO:.prop() vs .attr()和difference between prop() and attr() in jQuery and when to use attr() and prop()
答案 1 :(得分:8)
使用Jquery版本1.9.1+而不是
$('#operatordelivery').attr('checked', true);
$('#operatordelivery').attr('checked', 'checked');
你必须使用这个
$('#operatordelivery').prop('checked', true);
而且,而不是
$('#operatordelivery').attr('checked')
你必须使用:
$('#operatordelivery').prop('checked')