You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过jQuery点击按钮批量勾选/取消单选按钮?代码仅生效一次求排查

问题原因及解决方案

问题根源

你的代码仅能生效一次的核心问题是误用了attr()方法操作单选框的checked状态。attr()用于操作HTML原生属性,而单选框的选中状态属于DOM元素的动态状态属性,第一次设置后,HTML属性不会同步DOM的实时状态,后续调用attr()就无法修改实际选中状态了。

修复后的代码

将所有attr('checked', ...)替换为prop('checked', ...),且无需手动遍历元素(jQuery支持对选中的元素集合批量操作):

$(document).on('click', '#btn_all_absent', function(e){
    $("input:radio[class^=present]").prop('checked', false);
    $("input:radio[class^=absent]").prop('checked', true);
}); 

$(document).on('click', '#btn_all_present', function(e){
    $("input:radio[class^=absent]").prop('checked', false);
    $("input:radio[class^=present]").prop('checked', true);
});

补充说明

  • prop()专门用于处理DOM元素的动态状态(如checked、disabled、selected等),能正确同步元素的实时状态。
  • 直接通过选择器获取元素集合后调用prop(),代码更简洁高效,无需额外遍历逻辑。

内容的提问来源于stack exchange,提问作者Khushal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 10:02:02