Jquery проверка существования элемента

Материал из JQuery

Проверяет, удовлетворяет ли заданному селектору хотя бы один из выбранных элементов.

Проверяет, есть ли среди выбранных элементов, хотя бы один из элементов заданного объекта jQuery.

Проверяет, есть ли среди выбранных элементов, элемент elem (задается объектом DOM-элемента).

$("div").is(".lBlock") проверит, имеется ли на странице div-элемент(ы) с классом lBlock.
$(".lBlock").is("#area") проверит, имеется ли среди элементов с классом lBlock, элементы с идентификатором area.

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

Подсказка: иногда необходимо проверить, соответствуют ли все выбранные элементы заданному селектору:

Изменения в логике метода

До jQuery-1.7, метод .is() обладал небольшой логической ошибкой. При использовании позиционных селекторов, таких как :first, :gt() или :even, метод .is() смотрел позицию относительно расположения элементов в объекте jQuery, а не в документе. Поэтому, например, если объект jQuery содержал все элементы одного списка:

возвратило бы ожидаемое значение true, а вот выражение

уже оказалось бы равным false.

В jQuery-1.7 этот недостаток был устранен и при использовании позиционных селекторов в методе .is(), библиотека jQuery делает проверку относительно расположения элементов внутри документа, а не текущего объекта jQuery.

На практике приходится очень часто проверять существует ли элемент на веб-странице или нет.

Например, задача может быть следующей:

если на странице есть блок div с атрибутом id, то нужно выполнить какие-то действия с элементами, которые в нем находятся.

Читайте также:  Win 7 подключение к wifi

Такую проверку очень важно производить. Если в скрипте будет запрашиваться элемент, которого нет на странице, то будет ошибка. Скорее всего, вы знаете, насколько могут быть опасны ошибки в Javascript, весь код который расположен ниже, может просто не обрабатываться.

Поэтому производить проверку существования элемента — это очень важный момент.

Хочу рассказать о способе, как это можно сделать с помощью библиотеки Jquery.

$(«#mydiv»).length – это выражение будет возвращать true, когда скрипту удалось найти элемент и false в противном случае. Именно этот принцип работы и позволяет выполнить необходимую проверку.

Если у вас появляется окно такого вида, значит, все работает нормально.

Основная задача блога — стать стартовой платформой для начинающих разработчиков, здесь не только буду писать свои статьи, но также буду выкладывать полезные ссылки которые помогут разобраться в разных вопросах. Будут затронуты темы: Ruby on Rails, PHP, MySQl, CodeIgniter, JQuery.

пятница, 15 июля 2011 г.

jQuery. Проверить существование элемента на странице

Способ первый — стандартный:

Способ второй — удобный (создадим пользовательскую функцию exists() ):

Действия:

21 комментарий:

if ($("input").is("#id_question"))
.is() вроде специально для такой проверки и создан

is() проверяет много чего, он как ругулярка проходит по атрибутам узла, но мне кажется, что .length сработает быстрее, так как это уже есть установленное свойство, которое достаточно только вычитать, а is() будет выполнять поиск по заданному условию в рамках атрибута узла — что будет явно медленнее.

Где POS.test(selector) — регулярное выражение, которое ВСЕГДА выполняется если задан селектор.

Само регулярное выражение:
POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:((d*)))?(?=[^-]|$)/

я думаю что $("#id").length сработает быстрее 😉