Загрузка всех объектов с помощью класса в массив с помощью 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.