Проверка с помощью .length
Самый распространенный метод — проверить длину выбранного элемента с помощью свойства
.length. Если длина больше 0, значит элемент существует.
if ($('#myBlock').length > 0) {
alert('Блок существует!');
} else {
alert('Блок не найден!');
}Пример:Допустим, у нас есть блок с id myBlock. Если он присутствует на странице, то сообщение будет "Блок существует!". Иначе — "Блок не найден!".
Проверка с помощью оператора is()
Другой способ — использовать метод
is(), который возвращает true, если выбранный элемент существует, и false в противном случае.
if ($('#myBlock').is('*')) {
alert('Блок существует!');
} else {
alert('Блок не найден!');
}Примечание: Метод
is('*') проверяет, есть ли хотя бы один элемент в DOM, соответствующий данному селектору.Прямая проверка наличия элементов
Иногда бывает полезно убедиться, что элемент точно доступен на странице. Тогда можно использовать прямое присвоение переменной и проверку ее длины:
var blockExists = $('#myBlock');
if (blockExists.length) {
alert('Блок существует!');
} else {
alert('Блок не найден!');
}Дополнительные советы
Если вы уверены, что блок может появиться позднее (например, после AJAX-запроса), используйте события, которые реагируют на появление элемента:
$(document).on('DOMNodeInserted', '#myBlock', function() {
alert('Блок появился на странице!');
});Также полезно убедиться, что DOM полностью загружен, прежде чем пытаться проверить наличие элемента:
$(document).ready(function(){
if ($('#myBlock').length > 0) {
alert('Блок существует!');
} else {
alert('Блок не найден!');
}
});Итог: Самым надежным способом проверки наличия блока в jQuery является использование свойства
.length. Просто убедитесь, что DOM полностью загружен, и все блоки присутствуют на странице перед проверкой.