Загрузка всех объектов с классом в массив с использованием jQuery - PullRequest
10 голосов
/ 16 февраля 2009

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

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

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

myArray = $('testClass');

alert(myArray.count);

Что не так?

Ответы [ 3 ]

16 голосов
/ 16 февраля 2009

У вас есть:

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

Вы хотите:

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

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

12 голосов
/ 16 февраля 2009

Код, который вы предоставили, возвращает итеративный объект 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.

4 голосов
/ 17 февраля 2009

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

$('.testClass').length

Вот и все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...