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

为何出现Uncaught TypeError: $(...).is(...).each is not a function错误?

嘿,这个问题我太熟了,我来给你掰扯清楚为啥会报这个错~

根源解析:Uncaught TypeError: $(...).is(...).each is not a function

首先我们先还原一下你的错误代码逻辑(根据报错信息推断,应该是类似这样):

// 错误代码示例
$('.checkbox').is(':checked').each(function() {
  // 你写的复选框值追加逻辑
});

核心问题:.is() 返回的是布尔值,不是jQuery对象

jQuery的.is()方法本质是一个判断工具——它的作用是检查当前匹配的元素集合里,是否至少有一个元素符合你指定的选择器/条件,最终返回的结果是一个true或false的布尔值,而不是一个可以继续链式调用jQuery方法的jQuery对象。

当你在.is()后面直接调用.each()时,就相当于你在对着一个true或者false喊“来给我遍历元素”——但布尔值根本没有.each()这个方法啊!浏览器自然就抛出了类型错误。

正确写法的逻辑(对应你的正确代码)

你找到的正确写法,核心思路肯定是先拿到符合条件的jQuery元素集合,再去调用.each()。常见的两种写法:

// 写法1:直接用选择器筛选已勾选的复选框
$('.checkbox:checked').each(function() {
  const checkboxValue = $(this).val();
  // 执行值追加的逻辑
});

// 写法2:用.filter()筛选出符合条件的元素
$('.checkbox').filter(':checked').each(function() {
  const checkboxValue = $(this).val();
  // 执行值追加的逻辑
});

这两种写法返回的都是包含所有已勾选复选框的jQuery对象,所以可以正常链式调用.each()来遍历处理每个元素。

一句话总结

  • .is()是用来做“是/否”判断的,返回布尔值,不能接遍历方法
  • 要遍历符合条件的元素,得先通过选择器或.filter()拿到jQuery元素集合,再调用.each()

内容的提问来源于stack exchange,提问作者Don'tDownvoteMe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:06:05