jQuery: видите, сколько элементов соответствует селектору? - PullRequest
23 голосов
/ 15 мая 2010

Если у меня есть селектор типа

$.('.active');

Как я могу увидеть, сколько предметов соответствует?

В качестве альтернативы, есть ли простой способ проверить, были ли сопоставлены более нуля элементов?

Ответы [ 4 ]

33 голосов
/ 15 мая 2010

вызов .length на возвращенном наборе.

Не используйте .size, потому что:

Начиная с версии jQuery 1.8. Метод * .size () устарел

12 голосов
/ 15 мая 2010

Сколько:

var count = $('.active').length;

Проверьте, соответствует ли оно чему-либо:

if ($('.active').length) // since 0 == false
3 голосов
/ 15 мая 2010

Вы можете использовать собственное свойство javascript length:

alert( $(".active").length );

Вы даже можете использовать возвращаемое значение .length непосредственно в условном выражении:

if( $(".active").length ) {
  alert("Found some");  
} else {
  alert("Found nothing"); 
}​

В этомНапример, если найдено 0 результатов, будет выполнен оператор else.

Пример: http://jsbin.com/upabu/edit

2 голосов
/ 15 мая 2010

вы должны использовать $('.class').length, потому что это быстрее, но в качестве альтернативы вы можете позвонить $('.class').size() и получить тот же результат.

Чтобы проверить элементы, сделайте что-то вроде следующего:

var len = $('.class').length;
if (len)
    // do something
else
    // do something else

Кэширование длины в локальной переменной - это оптимизация, которая ускорит ваш JS, если вам придется сделать еще один вызов этого свойства длины.

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