Переменные не будут «неопределенными». При вызове с помощью селектора функция $()
всегда будет возвращать объект jQuery, а свойство .length
указывает, сколько элементов соответствует селектору - если ни один из них не соответствует .length
, будет 0.
Ответ elclanrs показывает, как использовать цикл для проверки соответствия каких-либо элементов вашим трем селекторам, но при условии, что у вас уже есть переменная, такая как $a
, которая была создана с помощью $a = $(".a")
, тогда вы можете проверить, является ли объект jQuery ссылка на эту переменную пуста следующим образом:
if ($a.length === 0) {
// no elements matched, so do something
}
Обратите внимание, что вы можете вызывать методы jQuery для пустого объекта jQuery без получения ошибки, поэтому что-то вроде:
$a.hide();
Скрывает все элементы, которые соответствуют селектору, используемому для создания $a
, но если элементы не соответствуют (.length===0
), ничего не происходит - вредных эффектов нет. Вам не нужно сначала проверять .length
.