Просмотров: 16 737

Jquery. Как проверить существует ли элемент на странице?

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

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

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

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

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

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

Вот пример:

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

01-06-2013 18-35-04

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

Вот несколько книг по Javascript и jQuery, которые могут быть полезными для вас:

07099997_cover-pdf-kniga-n-prohorenok-html-javascript-php-i-mysql-dzhentlmenskiy-nabor-web-mastera   12367630_cover-pdf-kniga-elizabet-robson-izuchaem-programmirovanie-na-javascript-9523650   01687985_cover-pdf-kniga-petr-tashkov-veb-mastering-na-100-html-css-javascript-php-cms-ajax-raskrutka

  • Антон

    Подскажите пожалуйста. Если искомый эллемент должен загрузиться с другого сервера в блок, как тогда сделать проверку?

    У меня в блоке скрипт загрузки тизера, проверяю в блоке наличие «img», если изображение не загрузилось, подключается другой скрипт, но загрузка изображения занимает пару секунд, в итоге подключаются оба скрипта 🙁

    • admin

      Попробуйте обернуть код проверки в такую конструкцию:

      $(document).ready(function(){

      });

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

  • Max

    // sleep for 2 seconds
    sleep(2);

  • Lido

    Не отказалась бы от такого скрипта, у меня тизерка на сайте висит, постоянно тизеры не показывает из-за фильтров по странам, я бы туда еще один тизер так подключила, получится лучше чем ротатор. Если не жалко, поделитесь таким готовым скриптом, а то я в коде не очень понимаю 🙁

  • http://codernote.ru Алексей

    if ( $(‘div’).is(‘#mydiv’) ) { alert(«Элемент есть»); }
    else { alert(«Элемента нет»); }

  • Александр

    Всегда выдает истину у меня

  • http://vk.com/id18397417 Дмитрий Ченгаев

    Александр, спасибо, что указали на ошибку. Исправил содержание заметки. Теперь должно работать.