我有一个不能正常工作的jQuery选择器尽最大努力解决它。有什么建议吗?
$(':checkbox:(not(:checked))[name=this.name][value="Done"]').attr({
checked: 'checked',
disabled: 'disabled'
});
如果尚未选中复选框,则应选中并禁用复选框,名称属性= this.name且值为Done。
我一直在摆弄它http://jsfiddle.net/PottyMonster/s8RMJ/我不知道如果那会有效。
答案 0 :(得分:1)
这应该这样做:
$('input[name=' + this.name + '][value=Done][type=checkbox]:not(:checked)').attr({
checked: 'checked',
disabled: 'disabled'
});
更新示例: http://jsfiddle.net/s8RMJ/22/
您需要将this.name
的值连接到选择器。
我还在选择器中添加了input
以使其更快。
此外,()
周围还有:not()
,因此看起来:(not())
无效。
编辑:
只是想注意我已将:checkbox
选择器替换为[type=checkbox]
,以使您的选择器对querySelectorAll
有效。
现在,在支持qsa
的浏览器中,它将获得巨大的性能提升。
答案 1 :(得分:0)
将[name=this.name]
更改为[name="'+this.name+'"]
和:checkbox
到[type="checkbox"]
http://jsfiddle.net/s8RMJ/24/