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[i]的形式访问它们。但是我不明白为什么我们可以作为objectA[I]访问。@Ramson,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[i]的形式访问它们。但是我不明白为什么我们可以作为objectA[I]访问。@Ramson,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])