英文:
jQuery confusion: why does $("input").eq(0)(":checked") give "jQuery(...) is not a function"?
问题
我对这个行为感到困惑。根据我的理解,$("input")
返回 DOM 中所有输入元素的 jQuery 对象,因此 $("input").eq(0)
将返回 DOM 中第一个输入元素的 jQuery 对象。而 ":checked" 选择器会从 jQuery 对象中选择所有已选中的元素。
所以我期望 $("input").eq(0)(":checked")
如果第一个输入元素未被选中,将返回长度为 0 的 jQuery 对象,如果被选中,则返回长度为 1 的包含该元素的 jQuery 对象。我的思维有什么问题吗?我明白这很基础,但我弄不明白。jQuery 是一个对象,但通常我可以像调用函数一样调用它,并传递一个选择器的字符串。但在这里,我调用一个返回 jQuery 对象的函数,但不能使用字符串选择器调用它。请给我一些启发!
英文:
I am puzzled by this behavior. As I understand the docs, $("input") returns a jQuery object for all of the input elements in the DOM, and so $("input").eq(0) would return a jQuery object for the first input element in the DOM. And the ":checked" selector selects from the jQuery object all elements that are checked.
So I expected that $("input").eq(0)(":checked")
would return a jQuery object of length 0 if the first input element was not checked, or a jQuery object of length 1 for the element itself if it was checked. What's wrong with my thinking? I realize this is really fundamental, but I can't figure it out. jQuery is an object, but I can normally call it like a function and pass it a string for a selector. But here I call a function that returns a jQuery object, but I can't call it with a string selector. Please enlighten me!
答案1
得分: 3
$("input").eq(0)
返回一个 jQuery
对象,但您正在尝试将其作为一个带有 (":checked")
参数的函数来调用。这是无效的,就像 ({a: 1})()
一样(尝试像调用函数一样调用对象)。jQuery
本身是一个可以调用的函数,但它的返回值不是。
使用 $('input').eq(0).is(':checked')
来检查元素是否匹配选择器。
或者使用 .filter(':checked')
来获取所有与选择器匹配的元素。
英文:
$("input").eq(0)
returns a jQuery
object, but you are trying to call it as a function with (":checked")
. This is invalid, just like ({a: 1})()
(attempting to call an object like a function). jQuery
itself is a function that you can call, but its return value is not.
Use $('input').eq(0).is(':checked')
to check if the element matches the selector.
Or use .filter(':checked')
to get all the elements that match the selector.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论