Javascript 什么$(';.element';);返回?

Javascript 什么$(';.element';);返回?,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,有消息称: var objectA = jQuery('.someClass'); // returns new instance of jQuery object. 有人说: var objectA = jQuery('.someClass'); // returns an array of elements with class='someClass'. 如果上面的语句返回jQuery对象,那么objectA作为数组的行为如何?谢谢。objectA的行为就像一个数组,可以通过索引进行迭代

有消息称:

var objectA = jQuery('.someClass'); // returns new instance of jQuery object.
有人说:

var objectA = jQuery('.someClass'); // returns an array of elements with class='someClass'.

如果上面的语句返回jQuery对象,那么objectA作为数组的行为如何?谢谢。

objectA
的行为就像一个数组,可以通过索引进行迭代和访问。它是具有
.someClass
的元素集合。因此,
objectA
类似于数组

但是,
objectA
不是一个纯js数组。因此,它无法访问方法。为了访问这些方法,您需要使用

最后,应该注意,当您使用
toArray
时,数组中的每个项都是
DOM元素
,而不再是
jQuery
对象。这可以通过将其包装在
$(…)
中来克服

$(realArray[0])

objectA
的行为就像一个数组,可以通过索引对其进行迭代和访问。它是具有
.someClass
的元素集合。因此,
objectA
类似于数组

但是,
objectA
不是一个纯js数组。因此,它无法访问方法。为了访问这些方法,您需要使用

最后,应该注意,当您使用
toArray
时,数组中的每个项都是
DOM元素
,而不再是
jQuery
对象。这可以通过将其包装在
$(…)
中来克服

$(realArray[0])


jQuery对象是一个类似数组的对象。如果你假设这两个语句都是类似数组的对象,而不是元素数组,那么这两个语句都是真的。@KevinB我完全不同意。关于声明某个对象是数组,我唯一想做的是,你可以在它上面调用array.prototype函数——这在jQuery对象上是做不到的。所以你说如果它说的是“类似数组的元素对象…”,你仍然不同意吗?我的观点是,如果在语句中使用了正确的术语,它将是正确的。如果有不清楚的地方,请告诉我,以便我可以尝试提供更好的解释jQuery对象是一个类似数组的对象。如果你假设这两个语句都是类似数组的对象,而不是元素数组,那么这两个语句都是真的。@KevinB我完全不同意。关于声明某个对象是数组,我唯一想做的是,你可以在它上面调用array.prototype函数——这在jQuery对象上是做不到的。所以你说如果它说的是“类似数组的元素对象…”,你仍然不同意吗?我的观点是,如果在语句中使用了正确的术语,它将是正确的。如果有不清楚的地方,请告诉我,以便我可以尝试提供更好的解释注意,当您使用
toArray()
,数组中的每个结果项都是DOM元素,而不再是jQuery对象。如果我没有错,它通过向jQuery对象添加元素(of.someclass)返回jQuery对象的新实例,如:
jQuery.fn={this.elements=elements;}objectA.elements
是无效的。为了证明这一点,请尝试打开此页面中的控制台并放入
$('div')。元素
将给出
未定义的
。但是,如果您使用
$('div')
它将为您提供一个集合。关于像
objectA[i]
这样的访问,这是通过索引访问项的众多有效方法之一。请参阅了解更多详细信息是的,我知道objectA[I]不起作用。然而,在哪种方式上它是无效的,如果我将匹配的元素添加到jquery实例的假设是正确的(在代码片段上方),那么就访问嵌套对象的javascript方式而言,它不应该像objectA.elements[i]那样被访问吗?为什么它不工作,jquery在内部做什么?成员们,jquery对象怎么能像一个匹配元素的数组一样工作,尽管它会有很多功能?@Ramson,我认为它的工作方式不像
jquery.fn={this.elements=elements;}jQuery.fn={returnelements;}。它返回集合,从而使像
$('div')[0]
这样的索引有效,因为
[0]
应用于返回的集合注意,当使用
toArray()
时,数组中的每个结果项都是DOM元素,不再是jQuery对象。如果我没有错,它通过向jQuery对象添加元素(of.someclass)返回jQuery对象的新实例,如:
jQuery.fn={this.elements=elements;}objectA.elements
是无效的。为了证明这一点,请尝试打开此页面中的控制台并放入
$('div')。元素
将给出
未定义的
。但是,如果您使用
$('div')
它将为您提供一个集合。关于像
objectA[i]
这样的访问,这是通过索引访问项的众多有效方法之一。请参阅了解更多详细信息是的,我知道objectA[I]不起作用。然而,在哪种方式上它是无效的,如果我将匹配的元素添加到jquery实例的假设是正确的(在代码片段上方),那么就访问嵌套对象的javascript方式而言,它不应该像objectA.elements[i]那样被访问吗?为什么它不工作,jquery在内部做什么?成员们,jquery对象怎么能像一个匹配元素的数组一样工作,尽管它会有很多功能?@Ramson,我认为它的工作方式不像
jquery.fn={this.elements=elements;}jQuery.fn={returnelements;}。它返回集合,从而使像
$('div')[0]
这样的索引有效,因为
[0]
应用于返回的集合
$(realArray[0])