jquery如何判断checkbox(复选框)是否被选中 全选 反选

如何判断checkbox是否选中?
文中说用 attr() 在实际判断的时候都是不可用的,判断不出来!!!
应该使用

if ($("#id").is(":checked")) {
    // 存在
} else {
    // 不存在
}

在这里插入图片描述
在这里插入图片描述
除了判断checkout好像没有看到hover,类似于这种应该如何判断呢?
我们知道 如果$() 选择器找到一个元素必定存在一个长度,因此我们也可以根据长度去判断

if ($(’#id:hover’).length) {
// 元素存在
} else {
// 元素不存在
}
感觉有点跑偏了,回归正题。。。

如果修改呢,很多人用的attr,removeAttr, 这些都是错误的,尤其是remove属性后用attr无法加回来

这里应该使用pop,而不是attr

官方建议 具有 true 和 false 两个属性的属性,如 checked, selected 或者 disabled 使用prop(),其他的使用 attr()
在这里插入图片描述
代码如下

<form action="#">
    <p><label><input type="checkbox" id="checkAll"/> Check all</label></p>
    
    <fieldset>
        <legend>Loads of checkboxes</legend>
        <p><label><input type="checkbox" class="case" /> Option 1</label></p>
        <p><label><input type="checkbox" class="case" /> Option 2</label></p>
        <p><label><input type="checkbox" class="case" /> Option 3</label></p>
        <p><label><input type="checkbox" class="case" /> Option 4</label></p>
    </fieldset>
</form>
$("#checkAll").change(function () {
    $("input:checkbox").prop('checked', $(this).prop("checked"));
});

demo http://jsfiddle.net/mayufo/8dxx5fjk/

这时候傻呵呵以为你做完了就错了!!!你还没有考虑全选后取消一个和全部一个个选中后全选按钮

与全选按钮关联

$('.case').on('click', function () {
    if ($('.case').length == $('.case:checked').length) {
        $('#checkAll').prop('checked', true);
   } else {
        $('#checkAll').prop('checked', false);
   }
})

demo http://jsfiddle.net/mayufo/8dxx5fjk/1/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值