不能理解的checkbox选中??

  • 想实现的最终效果:点击某个复选框,取消其它选中状态,只选中当前选框

图片描述

  • 实现代码:
<body>
  <input type="checkbox"> 复选框1
  <input type="checkbox"> 复选框2
  <input type="checkbox"> 复选框3
  <input type="checkbox"> 复选框4
  <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
  <script type="text/javascript">
    $('input:even').attr('checked', true);
    $('input').click(function(){
      $('input').attr('checked', false);
      // $(this).attr('checked', true);
      this.checked = true;
    })
  </script>
</body>
  • 对上述代码提的几个问题:

1、点击后重置所有选框为未选中

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

而只选中当前选框

// 原生js实现
this.checked = true;

可问题就出在这里,直选中当前选框的代码为什么不能这样写:

// jQuery实现
$(this).attr('checked', true);

2、如果设置为jQuery方式实现当前选中,明明已经设置了(看F12),可就是没效果

图片描述

阅读 1.9k
1 个回答
$('input').attr('checked', false);

换成

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

即可

checked属性实际上对应的是defaultChecked特性,设定多选框的初始状态值。
参照:
Attributes vs. Properties

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题