Просмотров: 12 481

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

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

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

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

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

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

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

Вот пример:

<!doctype html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<meta charset="utf-8">
<title>Документ без названия</title>
</head>
<body>
<div id="mydiv">
Какой-то текст
</div>
<script type="text/javascript">
if ($("#mydiv")){
  // делаем здесь что-то 
alert("Элемент есть");
}
else { alert("Элемента нет");}
</script>
</body>
</html>

$(«#mydiv») – это выражение будет возвращать 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(«Элемента нет»); }