jquery checkbox无法二次选中的解法

需求:

使用jquery控制checkbox选中/不选中。

 

思路:

checkbox是否选中主要是看checked属性:选中/checked=“checked”,不选中/checked=“” 或 清楚checked属性

 

一般做法:

工具:jQuery的attr方法。这样的做法,就是如标题所说的,除第一次可以选中外,以后的每次都是无效的。

 

代码实现:

HTML

<input type=“checkbox”>

<button class=“checked">选中</button>

<button class=“unchecked">不选中</button>

 

JS(使用attr方法)

<script type="text/javascript">

    $(".checked").click(function(){

        $("input").attr("checked", true);

        // 或者

        // $("input").attr("checked", "checked");   

    });



    $(".unchecked").click(function(){

        $("input").attr("checked", false);

        // 或者

        // $("input").attr("checked", '');

        // 或者

        // $("input").removeAttr("checked");



    });

</script>

使用attr方法其实是有改变checked属性的值的,不信可以F12打开浏览器的开发者工具,对着checkbox使用“审查元素”观察,可以看到checked属性的改变,然而就是没有效果。

 

 

解决方法:

使用jquery的prop方法。使用prop方法替换条attr方法即可。

<script type="text/javascript">

    $(".checked").click(function(){

        $("input").prop("checked", true);   

    });



    $(".unchecked").click(function(){

        $("input").prop("checked", false);

    });

</script>

 

这里简单说一下prop和attr方法的使用时机。

 

  • 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。
  • 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。

转载于:https://my.oschina.net/u/2487410/blog/755698

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值