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

jQuery对象调用.is方法报错:Uncaught TypeError: el.is is not a function

解决Uncaught TypeError: el.is is not a function错误

问题根源

报错的核心原因是误用了$$替代了jQuery的$选择器:

  • 原生浏览器环境中,$$是document.querySelectorAll()的快捷别名,返回的是NodeList集合,而非jQuery对象,因此没有jQuery提供的.is()方法。
  • 你原本的代码用$(this)能正常运行,是因为$是jQuery的全局别名,它会把DOM元素包装成jQuery对象,从而支持.is()这类jQuery方法。

修复方案

把代码中所有的$$替换回jQuery的$即可:

$('input, select').on('click', function () {
        let el = $(this)
        console.log(el);
        for (var i = 0; i < paySelectors.length; i++) {
            var sl = paySelectors[i]
            if (el.is('[class*="' + sl.element + '"], [id*="' + sl.element + '"]')) {
                const action = sl.step

                if (action) {
                    if (sl.has_start) {
                        handleSelectorClick(this, action + '_start')
                        handleSelectorInput(this, action + '_complete')
                    } else {
                        handleSelectorClick(this, action)
                    }
                }

                break
            }
        }
    })

额外说明

如果你的项目中自定义了$$方法,需要确认它是否返回jQuery对象。但从当前报错来看,$$(this)返回的不是jQuery对象,所以优先使用jQuery原生的$来包装DOM元素,确保能调用.is()等方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 03:10:08