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

jQuery疑问:为何$("input").eq(0)(":checked")会报‘jQuery(...)不是函数’?

问题解惑:为什么jQuery对象不能像$()那样直接传选择器调用?

首先明确核心误区:$是jQuery的全局入口函数,调用它(比如$("input"))会生成并返回jQuery实例对象,但这个实例对象本身并不是可直接调用的函数——你不能把它当成$函数来用,所以$("input").eq(0)(":checked")这种写法从根本上就错了。

正确的实现方式

想要判断第一个input是否被选中,有几种靠谱的写法:

  • 用.filter()筛选已有的jQuery对象:

    $("input").eq(0).filter(":checked")
    

    这会从第一个input的jQuery对象里筛选出被选中的元素,未选中时返回长度为0的jQuery对象,选中时返回包含该元素的对象。

  • 直接在选择器里一步定位:
    把位置和选中状态合并到一个选择器里,更简洁:

    $("input:eq(0):checked")
    // 或者用:first
    $("input:first:checked")
    
  • 直接获取选中状态(更高效):
    如果只是要判断是否选中,不需要返回jQuery对象,直接用.prop()拿布尔值更直观:

    $("input").eq(0).prop("checked") // 返回true/false
    

再理清楚逻辑

jQuery对象是一个类数组的实例,它的功能都是通过原型上的方法(比如.eq()、.filter())实现的,而$()是用来创建这个实例的构造入口。你之前的写法混淆了「构造函数」和「实例对象」的角色——实例对象不能像构造函数那样接收选择器参数来筛选,必须用它自带的方法来操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 03:45:56