What does jquery $ actually return?

I have read the JQuery documentation, and while much attention is devoted to what you should pass the function, I don't see any information on what it actually returns.

In particular, does it always return an array, even if only one element is found? Does it return null when nothing is found? Where is this documented?

I understand that jquery methods can be applied to the return value, but what if I want to just use the return value directly?

48683 次浏览

The jQuery function (i.e. "$") always returns a jQuery object in every instance.

It doesn't return an array, it returns a jQuery object. The jQuery object is what contains all the special jQuery methods.

它从不返回 null 或其他类型。如果找到一个元素,jQuery 对象将只有一个子元素。如果没有找到任何元素,jQuery 对象将为空。

来自 Rick Strahl 的描述:

JQuery 对象: 包装集: 选择器返回一个已知的 jQuery 对象 as the "wrapped set," which is an 类似数组的结构,其中包含所有 the selected DOM elements. You can 在包装集上迭代,如 数组或访问单个元素 通过索引器($(sel)[0] 更重要的是,你可以 也应用 jQuery 函数 所有选定的元素。

关于一无所获:

它是否总是返回一个数组? 它是否返回 null?

你总是得到相同的东西回来,是否它有任何内容是问题。通常您可以使用。Val ()(例如 $(’)。MyElem’)。Val ()

$()总是返回 jQuery 函数这一事实使您能够明智地链接 jQuery 函数调用。

根据 firebug,它返回与选择器匹配的对象数组。但是这个数组是一个 jQuery 对象,它的方法比简单的 Array 多。

正如另一个答案所提到的,它返回 jQuery 对象。

这个对象始终包含一个元素数组(即使它是一个空数组,或者只有一个对象的数组)。

If you'd like to use the returned object "directly", as in, as a plain element, you can do one of the following:

$('selector')[0] // element
$('selector').get(0) // element
$('selector').length // number of elements in the array

他们的文档 列出了一些可以与“ $”一起使用的核心调用以及它们返回的内容

来自 JQuery 文档:

The jQuery object itself behaves much like an array; it has a length property and the elements in the object can be accessed by their numeric indices [0] to [length-1]. Note that a jQuery object is not actually a Javascript Array object, so it does not have all the methods of a true Array object such as join().

Jquery 选择器机制

$("..") , the jquery selector, is used to select matched elements.

Return value

它总是返回一个类似数组的 jquery 对象,该对象具有 length属性,

Call method on returned jquery object

Methods of jquery could be called on the object, and apply to those selected elements,

通过索引访问原始元素

选定的元素作为对象的属性存储,它们的属性名是从0开始的索引号,
thus could be accessed by index, start from 0,
在获取原始元素之后,您可以将其视为通过 document.getElementXxx()获取。

将原始元素包装到 jquery 对象

获取原始元素后,可以通过调用 $(originalEle),
then you can call jquery methods on the wrapped object.