全选复选框功能异常:点击无响应问题求助(附代码)
解决复选框全选无响应的问题
嘿,我来帮你搞定这个全选复选框的问题!你的代码逻辑思路是对的,但在jQuery的属性处理上踩了个小坑,导致点击全选没反应。
问题根源
在jQuery 1.6及以后的版本中,像checked这种表示元素状态的属性,应该用prop()方法来获取和设置,而不是attr()。attr()是用来操作HTML标签上的初始属性值,而prop()才是操作DOM元素本身的实时状态属性。你用attr('checked')获取的是页面加载时的初始值,不是当前的选中状态,所以逻辑判断会出错。
修正后的代码
$(document).ready(function() { $("#check-all").click(function() { // 获取当前全选框的实时选中状态(布尔值) var isChecked = $(this).prop('checked'); // 把这个状态同步给所有目标复选框 $("#deleteid").prop('checked', isChecked); }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
额外优化提示
如果你的目标复选框不止一个(比如多个复选框用同一个类名标识),可以把选择器改成$(".delete-item")(假设类名是delete-item),这样就能一次性同步所有同类型复选框的状态,不用局限于单个ID。
内容的提问来源于stack exchange,提问作者Jazuly
相关产品推荐
相关产品推荐

