jQuery: что возвращается, если $ ('# id') ничего не соответствует? - PullRequest
23 голосов
/ 24 мая 2009

Что возвращается, если $ ('# id') ничего не соответствует? Я подумал, что это будет null или false или что-то подобное, поэтому я попытался проверить так:

var item = $('#item');
if (!item){
    ...
}

Но это не сработало.

Ответы [ 4 ]

46 голосов
/ 24 мая 2009

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

$('selector').length

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

var item = $('#item');
if (item.length == 0) {
  // ...
}
7 голосов
/ 24 мая 2009

Хотя $('selector').length отлично подходит для определения количества объектов, которым соответствует ваш селектор, он на самом деле совершенно не нужен. Особенность jQuery в том, что все функции на основе селектора используют длину внутренне, поэтому вы можете просто сделать $(selector).hide() (или что-то еще), и для пустого набора не требуется никаких действий.

5 голосов
/ 24 мая 2009

Объект jQuery, не содержащий узлов DOM.

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

var item = $('#item');
if (!item[0]){
    ...
}

для проверки вашего существования.

1 голос
/ 24 мая 2009

Псевдонимом атрибута длины является метод size (). Таким образом, вы можете запросить:

$ ( "селектор"). Размер ()

чтобы увидеть, сколько элементов соответствует.

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