Определение того, не нашел ли 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

Это основное, теперь делайте все, что хотите.