Как проверить, существует ли элемент, если элемент создан методом .append()
?
$('elemId').length
не работает для меня.
$('elemId').length
не работает для я.
Вам нужно поставить #
перед идентификатором элемента:
$('#elemId').length
---^
С ванильным JavaScript вам не нужен хеш (#
), например. document.getElementById('id_here')
, однако при использовании jQuery вам нужно поставить хеш для таргетинга элементов на основе id
точно так же, как CSS.
Попробуйте проверить длину селектора, если он возвращает вам что-то, тогда элемент должен существовать иначе.
if( $('#selector').length ) // use this if you are using id to check
{
// it exists
}
if( $('.selector').length ) // use this if you are using class to check
{
// it exists
}
Попробуйте следующее:
if ($("#mydiv").length > 0){
// do something here
}
Свойство length будет возвращать ноль, если элемент не существует.
> 0
. Есть идеи, почему это может произойти?
Как проверить, существует ли элемент
if ($("#mydiv").length){ }
Если это 0
, он будет оценивать false
, что-то большее, чем true
.
Нет необходимости в более чем, чем сравнение.
ваш elemId
, как следует из его названия, является атрибутом Id
, это все, что вы можете сделать, чтобы проверить, существует ли он:
Ванильный JavaScript:, если у вас есть более продвинутые селекторы:
//you can use it for more advanced selectors
if(document.querySelectorAll("#elemId").length){}
if(document.querySelector("#elemId")){}
//you can use it if your selector has only an Id attribute
if(document.getElementById("elemId")){}
JQuery
if(jQuery("#elemId").length){}
!= null
, как querySelector
всегда возвращает null
(что falsey) или элемент
if (document.querySelector("elemId") != null )
просто для улучшения читабельности кода
Вы также можете использовать запись в виде массива и проверить первый элемент.
Первый элемент пустого массива или коллекции просто undefined
, поэтому вы получаете нормальное поведение javascript с правдой/ложью:
var el = $('body')[0];
if (el) {
console.log('element found', el);
}
if (!el) {
console.log('no element found');
}
Вы можете использовать собственный JS для проверки существования объекта:
if (document.getElementById('elemId') instanceof Object){
// do something here
}
Не забывайте, что jQuery - это не что иное, как сложная (и очень полезная) оболочка вокруг собственных команд и свойств Javascript
instanceof Object
Если у вас есть класс в элементе, вы можете попробовать следующее:
if( $('.exists_content').hasClass('exists_content') ){
//element available
}
.length
прекрасно работает, смотрите здесь: jsfiddle.net/yahavbr/A9zW2, если вы использовали#
опубликуйте свой код, и мы увидим, что вы сделали неправильно.