Подсчет элементов с помощью jQuery

Есть ли способ подсчитать, сколько элементов на странице с определенным классом?


person santa    schedule 18.04.2011    source источник


Ответы (8)


$('.someclass').length

Вы также можете использовать:

$('.someclass').size()

который функционально эквивалентен, но предпочтительнее первый. На самом деле, последний теперь устарел и не должен использоваться ни в каких новых разработках.

person David    schedule 18.04.2011
comment
Я не нахожу его, но я недавно прочитал на Meta Как вы голосуете?, и там была цитата Джеффа Этвуда Всякий раз, когда я ищу проблему и нахожу ответ. Мой точная ситуация. - person brasofilo; 12.09.2013
comment
Обратите внимание, что метод .size() устарел. - person Moshe Simantov; 22.01.2014
comment
с версией 3.1.1 длина возвращает значение undefined - person Giovanni Bitliner; 26.11.2016
comment
@GiovanniBitliner: Ты уверен в этом? jsfiddle.net/gwj3v3ca Я был бы очень удивлен, если бы jQuery внес изменение, в котором селектор jQuery больше не вернул массив. Это было бы очень серьезным изменением. - person David; 26.11.2016
comment
Кажется, это подсчитывает длину символов в элементе, а не количество элементов, имеющих этот класс. - person Tyler Lazenby; 18.04.2018
comment
@TylerLazenby: Ты уверен в этом? jsfiddle.net/xpvt214o/154885 У вас есть пример, подтверждающий ваше утверждение? - person David; 18.04.2018
comment
Да, у меня есть вопрос, который показывает код: stackoverflow.com/questions /49907661/ И это происходит на веб-сайте madewithloveandsarcasm.com - person Tyler Lazenby; 18.04.2018
comment
@TylerLazenby: код в вашем вопросе не использует jQuery. Вы просто получаете длину строкового литерала. - person David; 18.04.2018
comment
Если элемент существует: (#id).length › 0 - person Mojtaba Nava; 03.09.2019

var count_elements = $('.class').length;

Откуда: http://api.jquery.com/size/

Метод .size() функционально эквивалентен свойству .length; однако свойство .length предпочтительнее, поскольку оно не требует дополнительных затрат на вызов функции.

Пожалуйста, посмотри:

http://api.jquery.com/size/

http://api.jquery.com/length/

person David Houde    schedule 18.04.2011

Да, есть.

$('.MyClass').size()
person g.d.d.c    schedule 18.04.2011
comment
$('.MyClass').length немного лучше, так как нет накладных расходов на вызов метода. В остальном они абсолютно одинаковы. - person EvilAmarant7x; 18.04.2011

Я считаю, что это работает:

$(".MyClass").length 
person IronicMuffin    schedule 18.04.2011

попробуй это:

var count_element = $('.element').length
person Naftali aka Neal    schedule 18.04.2011

$('.class').length

Этот не работает для меня. Я бы предпочел использовать это:

$('.class').children().length

Я действительно не знаю, почему, но второй работает только для меня. Почему-то ни один размер не работает.

person Kiss Koppány    schedule 29.03.2014

Лучше всего использовать .each().

var num = 0;

$('.className').each(function(){
    num++;
});
person Panomosh    schedule 23.03.2015
comment
Метод .each() предназначен для того, чтобы сделать конструкции циклов DOM краткими и менее подверженными ошибкам. - person Panomosh; 26.01.2017

используйте метод .size() или атрибут .length

person neebz    schedule 18.04.2011
comment
.size() устарел - person Amine ABBAOUI; 17.06.2021