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

jQuery:将选中复选框存入数组失败,数组为空问题排查

问题分析与修复方案

核心错误1:选择器匹配错误

你写的选择器 .availability input:checked 逻辑错误——它会查找拥有availability类的父元素内部的选中复选框,但实际上你的复选框本身就带有availability类,这个选择器根本匹配不到任何元素,所以数组始终为空。

正确的选择器应该是 input.availability:checked(或者直接 .availability:checked,因为目标元素都是input)。

核心错误2:数组未重置

每次触发复选框的change事件时,你没有清空之前的availability数组,导致重复操作时数组会不断累加旧值(比如勾选再取消后重新勾选,数组会出现重复项)。


修复后的代码

基础修复版

var availability = [];
$('input[type="checkbox"]').change(function() {
  // 每次触发事件先清空数组
  availability = [];
  // 选择带有availability类的选中复选框
  $('input.availability:checked').each(function() {
    availability.push($(this).attr('name'));
  });
  console.log(availability);
});

简洁优化版(推荐)

用jQuery的map方法直接生成数组,省去手动清空和循环的步骤:

$('input[type="checkbox"]').change(function() {
  var availability = $('input.availability:checked').map(function() {
    return $(this).attr('name');
  }).get();
  console.log(availability);
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 10:18:32