具有多属性的jQuery复选框选择器

时间:2011-01-29 16:55:02

标签: jquery attributes checkbox selector

我有一个不能正常工作的jQuery选择器尽最大努力解决它。有什么建议吗?

            $(':checkbox:(not(:checked))[name=this.name][value="Done"]').attr({
                checked: 'checked',
                disabled: 'disabled'
            });

如果尚未选中复选框,则应选中并禁用复选框,名称属性= this.name且值为Done。

我一直在摆弄它http://jsfiddle.net/PottyMonster/s8RMJ/我不知道如果那会有效。

2 个答案:

答案 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/