objectA
ведет себя как массив в том смысле, что его можно повторить и получить доступ по индексу. Это коллекция элементов с .someClass
. Таким образом, это objectA
массив типа
var objectA = jQuery('.someClass');
var first = objectA[0];//first element with someClass
objectA.each(function(){
//do something with each element that has someClass
});
Однако objectA
не является чистым JS массива. Таким образом, он не имеет доступа к методам Array.prototype. Для того, чтобы получить доступ к этим методам, вы должны будете использовать toArray() как
var realArray = objectA.toArray();
realArray.reverse();//now you can use Array.protype methods like reverse()
Наконец, следует отметить, что при использовании toArray
, каждый элемент массива является DOM element
и больше не jQuery
объекта. Это может быть преодолено, обернув его в $(...)
как
$(realArray[0])
Объект JQuery является * массив типа * объект. См. Http://stackoverflow.com/search?q=%5Bjavascript%5D+array-like –
Оба оператора являются истинными, если вы предполагаете, что они означают объект типа типа, а не массив элементов. –
@KevinB Я совсем не согласен. Единственное, что я мог бы предположить, заявляя, что что-то является массивом, заключается в том, что вы можете вызвать на нем функции Array.prototype, которые вы не можете использовать для объекта jQuery. – dave