Проверка существования элемента в jQuery
Вопрос: Как проверить, существует ли элемент, который был создан с помощью метода .append()
? Метод $('elemId').length
не работает для меня.
В дополнение к этому, я заметил, что на StackOverflow уже есть похожий вопрос, который, кажется, имеет 17 ответов, однако все они не совсем подходят для моей ситуации. Этот вопрос был закрыт 9 лет назад. Может быть, у кого-то есть актуальные решения или рекомендации, как можно обойти эту проблему?
5 ответ(ов)
Вы забыли добавить символ #
перед идентификатором элемента:
$('#elemId').length
---^
При использовании чистого JavaScript вам не нужно добавлять #
, например, можно использовать document.getElementById('id_here')
. Однако в jQuery для выбора элементов по id
необходимо использовать #
, как в CSS.
Вы можете проверить наличие элемента на странице, используя длину селектора. Если длина селектора возвращает что-то, значит элемент существует, в противном случае — нет. Вот пример для проверки элемента с идентификатором и классом:
if ($('#selector').length) { // используйте это, если проверяете по id
// элемент существует
}
if ($('.selector').length) { // используйте это, если проверяете по классу
// элемент существует
}
Таким образом, вы можете легко определить, присутствует ли элемент в DOM.
Попробуйте следующее:
if ($("#mydiv").length > 0) {
// выполните здесь какое-либо действие
}
Свойство length
вернет ноль, если элемент не существует.
Чтобы проверить, существует ли элемент на странице, можно использовать следующий код:
if ($("#mydiv").length) { }
Если значение length
равно 0
, это будет оцениваться как false
, а любое значение больше нуля будет оцениваться как true
.
Таким образом, нет необходимости в сравнении больше или меньше — достаточно просто проверить его значение.
Ваш elemId
, как следует из его названия, является атрибутом Id
, и вот что вы можете сделать, чтобы проверить, существует ли он:
Vanilla JavaScript: если у вас более сложные селекторы:
// можно использовать для более сложных селекторов
if (document.querySelectorAll("#elemId").length) {}
// также можно использовать так
if (document.querySelector("#elemId")) {}
// если ваш селектор содержит только атрибут Id
if (document.getElementById("elemId")) {}
jQuery:
if (jQuery("#elemId").length) {}
Этот код позволит вам проверить наличие элемента с указанным Id
.
Как перенаправить на другую веб-страницу?
Прокрутка к элементу с использованием jQuery
jQuery: Получение Выбранного Значения Из Выпадающего Списка
Как проверить радио-кнопку с помощью jQuery?
Кэширует ли Safari на iOS 6 результаты $.ajax?