Определение того, не нашел ли jQuery какой-либо элемент
Я использую селектор jQuery, особенно селектор id:
$("#elementId")...
Как определить, нашел ли jQuery элемент или нет?
Даже если элемент с указанным идентификатором не существует, следующее утверждение дает мне: [object Object]
alert($("#idThatDoesnotexist"));
Ответы
Ответ 1
$('#idThatDoesnotexist').length
- это то, что вы ищете. (Если он ничего не найдет, это будет === 0
.) Таким образом, ваше условное утверждение должно быть:
if($('#id').length) { /* code if found */ } else { /* code if not found */ }
Вы получаете объект, возвращенный из этого предупреждения, потому что jQuery (почти) всегда возвращает "объект jQuery" при его использовании, который является оболочкой для найденных элементов jQuery, которые разрешают цепочку методов.
Ответ 2
Futuraprime прав, но вы можете сократить свой синтаксис, выполнив следующие действия:
if ($("#id").length) {
//at least one element was found
} else {
//no elements found
}
Ответ 3
!$.isEmptyObject($.find('#id'))
Это вернет true, если элемент существует и false, если это не так.
Ответ 4
$('#my_selector').length > 0
$('#my_selector').get(0) !== undefined
$('#my_selector')[0] !== undefined
Это основное, теперь делайте все, что хотите.