2015-11-08 1 views
-2

В чем разница между следующими:В чем разница между выбранными элементами в jQuery?

1. var el = $('.test'); 
    2. var el_array = [$('.test')]; 

    alert(el); // output [object Object] 
    alert(el_array); // same output as above 

Я действительно не понимаю, как это работает.

+1

Попробуйте использовать 'console.log' вместо' alert', вы увидите разницу. – AlliterativeAlice

+0

Получил это. Отлично и спасибо за подсказку. Я знаю, что второй var является массивом, но я смущен. Не все div с одним классом хранятся в этом конкретном массиве? Длина массива вышла 1, но у меня есть 5 элементов. С другой стороны, длина вышла 5 для первого var. Как мне пройти через них для первого и второго var? – cadobe

+0

Для второго массива вы хотели бы получить доступ к 'el_array [0] .length'. Второй массив - это массив, который вы создали, который имеет один элемент. – AlliterativeAlice

ответ

0

Выражение $('.test') возвращает объект jQuery, представляющий собой объект, подобный массиву, содержащий ссылки на объекты объектов DOM.

Они отображаются одинаково, потому что оба являются массивами (или массивами вроде объектов), которые содержат какой-то объект. Браузер просто не описывает их достаточно подробно, чтобы увидеть разницу.

Чтобы описав содержание переменных более точно (в предположении, что селектор .test находит три элемента):

el:  jQuery[ Element, Element, Element ] 
el_array: Array[ jQuery[ Element, Element, Element ] ] 
0

typeof $(".test") == "object" и typeof [] == "object", поэтому вы получите тот же результат, оба JavaScript объекты. Этот SO answer описывает, что такое объект jquery. Таким образом, объект и объект в объекте дают тот же результат.

 Смежные вопросы

  • Нет связанных вопросов^_^