jQuery如果复选框未被选中的问题

30

可能是重复问题:
使用jQuery检查复选框是否被选中

我遇到了一个问题,就是无法判断复选框未被选中的情况。

这是我的示例代码:

$(".get-the-look ul input").click(function(){
    if("this:checked") {
        var product = $(this).attr('alt');
        $("#bob div").remove('.'+product);
    } else {
        alert('asdasd');
    }
});

但是警报(如果复选框未被选中)从未发出...无论复选框处于什么状态,'else'语句都不会触发?

我看不出我哪里出错了。

2个回答

20

你不能将this:checked作为字符串传递 - 这样不起作用,因为它将被解释为字符串并始终计算为true

改用$(this).is(':checked')


应该使用yes $(this).is(:checked)! - Harish
另一个类似的问题/答案:https://dev59.com/YkzSa4cB1Zd3GeqPp9IP - Asraful

2

字符串"this:checked"将始终评估为TRUE。请尝试改用this.checked,即在this上评估属性checked

if(this.checked) { ...

哦,有点晚了 :) 另外,请确保只在 <input type="checkbox /> 上尝试访问 .checked - jensgram
是的 :) 但使用本地的 this.checked 就可以完成它的工作(而且更快)- 给出 jQuery 的答案是为了与示例的其余部分保持一致,并展示如何正确使用它。 - Tom Tu
@Tom Hu 是的!我还忘了提到利用jQuery强大的功能访问元素属性,我会尽可能地在链接中加入它 :) - jensgram

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接