Определение, не нашел ли jQuery какой-либо элемент - PullRequest
113 голосов
/ 21 мая 2010

Я использую селекторы jQuery, особенно идентификатор селектора:

$("#elementId")...

Как мне определить, нашел ли jQuery элемент или нет? Даже если элемент с указанным идентификатором не существует, следующий оператор даст мне: [object Object]

alert($("#idThatDoesnotexist"));

Ответы [ 4 ]

175 голосов
/ 21 мая 2010

$('#idThatDoesnotexist').length - это то, что вы ищете. (Если он ничего не найдет, это будет === 0.) Таким образом, ваше условное утверждение, вероятно, должно быть:

if($('#id').length) { /* code if found */ } else { /* code if not found */ }

Вы получаете объект, возвращенный из этого оповещения, потому что jQuery (почти) всегда возвращает «объект jQuery», когда вы его используете, который является оберткой для найденных jQuery элементов, которая разрешает сцепление методов.

26 голосов
/ 21 мая 2010

Futuraprime прав, но вы можете сократить синтаксис, выполнив следующие действия:

if ($("#id").length) {
   //at least one element was found
} else {
   //no elements found
}
11 голосов
/ 13 января 2013
!$.isEmptyObject($.find('#id'))

Возвращает true, если элемент существует, и false, если его нет.

7 голосов
/ 04 мая 2016
$('#my_selector').length > 0 
$('#my_selector').get(0) !== undefined
$('#my_selector')[0] !== undefined

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...