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

jQuery中item.hasClass不是函数问题排查求助

问题原因与解决方法

报错原因

你代码里的item是原生DOM元素,不是jQuery对象,所以无法调用hasClass()、addClass()这类jQuery专属方法。

jQuery的.each()方法回调中,第二个参数传递的是匹配到的原生DOM节点,而非jQuery包装后的对象——这是jQuery API的设计规则,和你误以为的“操作jQuery对象”不符。

解决方案

有两种常用修复方式:

方式1:将原生DOM转为jQuery对象

用$(item)把原生元素包装成jQuery对象,之后就能正常调用jQuery方法:

$('.cupsGame-level').each((i, item) => {
    const $item = $(item);
    if ($item.hasClass(`cupsGame-level-${this.gameCupsStats.level}`)) {
        $item.addClass('passedLevel');
    }
})

方式2:简化代码,直接用选择器筛选(更推荐)

完全可以不用.each()循环,直接通过复合选择器或.filter()方法定位目标元素,一次性添加类:

// 复合选择器写法
$(`.cupsGame-level.cupsGame-level-${this.gameCupsStats.level}`).addClass('passedLevel');

// 或者用filter筛选
$('.cupsGame-level').filter(`.cupsGame-level-${this.gameCupsStats.level}`).addClass('passedLevel');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 20:35:26