Загрузка всех объектов с помощью класса в массив с помощью jQuery

У меня есть куча div на моей странице с классом testClass.

Я хочу загрузить их в массив, а затем проверить размер массива.

Но его не работает?

myArray = $('testClass');

alert(myArray.count);

Что не так?

Ответ 1

У вас есть:

myArray = $('testClass');
alert(myArray.count);

Вы хотите:

myArray = $('.testClass');
alert(myArray.length);

Обратите внимание, во-первых, на. для testClass. Затем myArray является объектом JavaScript, поэтому у вас есть доступ к ключу длины.

Ответ 2

Код, который вы предоставили, возвращает итеративный объект jQuery, но не массив. Кроме того, вы допустили ошибку в своем селекторе классов.

Для проверки размера этого объекта jQuery вы можете использовать:

var $j_object = $(".testClass");
alert($j_object.size());

Чтобы перебрать этот объект, вы можете использовать функцию each():

var $j_object = $(".testClass");
$j_object.each( function(i) { doSomethingHere(); } );

Проверьте документацию jQuery для получения дополнительной информации о том, как использовать каждый().

Еще одно примечание. Если вы хотите что-то сделать с dom-объектом в каждой функции, вы можете обратиться к 'this'. Чтобы получить объект jQuery из объекта dom, вы можете использовать $(this).

Кроме того, знак $полностью необязателен, но может помочь различать объекты jQuery и другие переменные, такие как те, которые обозначают элементы dom.

Ответ 3

Вы можете сделать это без использования массива:

$('.testClass').length

Что все.