Суббота , 20 Апрель 2024
ДомойПубликацииБиблиотека jQuery: где скачать, как подключить, основы работы

Библиотека jQuery: где скачать, как подключить, основы работы

Друзья, здравствуйте.

Неожиданно для себя обнаружил, что на блоге нет, фактически, ни одного упоминания о чумовой библиотеке для работы с JavaScript — jQuery.

Если считаете, что для удобной и быстрой разработки клиентского взаимодействия достаточно обычного JavaSciprt, которые вроде бы и не сложен, могу ответить одно: почти наверняка на вашем пути сложных проектов ещё не встречалось. Конечно, для простейшего взаимодействия со страницей — например, запросить содержимое элемента по его id — библиотеки не нужны. Но представьте, если нужный элемент располагается где-то в недрах кода, и для доступа к нему потребуется пройтись по дереву вышележащих элементов и классов. В этом случае придётся писать свою реализацию для поиска. Однако, сюрпризы только начинаются — код, прекрасно работающий в Firefox, может напрочь отказаться работать в IE или Chrome. Соответственно, придётся либо искать универсальный метод, который бы работал везде, либо использовать «костыли», что довольно долго, т. к. подразумевает дополнение кода проверками работы того или иного метода.

Но хорошая новость присутствует — уже давно есть люди, прошедшие этот путь много лет назад, люди, которые не только знают о множестве подводных камней, но и как их преодолевать. Итак, встречайте одну из лучших JavaScript-библиотек — jQuery!

Библиотека jQuery

Что же позволяет этот «зверь»? В самом ли деле нужно изучать основы работы и новый синтаксис ещё одной библиотеки? Если попробуете, то сможете легко получить доступ к элементам страницы с помощью модели построения селекторов в CSS, манипулировать элементами, классами и атрибутами и ещё много чего полезного. Но на самом деле — решать вам. Только учтите, что поработав с jQuery будет сложно заставить себя программировать по старинке, на чистом JavaScript. Ну, я предупредил.

Прежде, чем перейти к основным темам статьи, позволю себе объяснения, которые в дальнейшем пригодятся. Так повелось, что язык гипертекстовой разметки — HTML — постоянно развивался и продолжает это делать сейчас. Начиная с 4-ой версии от него отпочковался XHTML, который предусматривает несколько другую обработку документов — весь код должен быть абсолютно валидным и не содержать ошибок (в противном случае, браузерам разрешается прекращить дальнейшую обработку), в то время, как HTML допускает любые вольности, и все обозреватели обязаны хоть как-то, но отобразить страницу. Чтобы узнать, какую спецификацию поддерживает сайт, достаточно заглянуть в начало кода страницы и найти тег DOCTYPE.

Следующие документы следуют спецификации XHTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

Спецификация HTML5 имеет упрощённое определение:
<!DOCTYPE html>

В остальных случаях браузеры будут считать, что документ следует рассматривать как HTML 4.01.

Основное значимое отличие — XHTML требует, чтобы все теги были закрытыми. В случае отсутствия у элемента закрывающего тега на конце необходимо использовать слеш /. Кроме того, названия нужно задавать в нижнем регистре. Несколько примеров помогут понять, о чём речь:

HTML XHTML
<A href="#">link</A> <a href="#">link</a>
<br> <br />
<script type="text/javascript"></script> <script type="text/javascript" />

Где скачать jQuery?

Самое простое — перейти на официальный сайт. Там, помимо самой библиотеки, можно найти ещё множество разных полезностей — от jQuery UI (для более простого и удобного создания пользовательского интерфейса) до разнообразных плагинов, которых насчитывается более 2500!

Более удобный способ, который даже не требует загрузки файлов на свой сайт — воспользоваться сервисом хостинга JS-библиотек. Плюсы этого метода — вы можете выбрать любую версию, которая всегда находится по заданному адресу.

Как подключить библиотеку jQuery к своей странице?

Если предпочитаете все файлы хранить на своём сервере, лучше будет выделить единое место, в которое позже, возможно, добавятся плагины или другие библиотеки. Пусть это будет папка /scripts/ в корне сайта. Переходим на страницу официального сайта (ссылка чуть выше). Здесь нам предлагаются две версии — 1.x и 2.x — из которых предпочтительнее выбрать последнюю. Первая версия «тянет» с собой устаревший код, поэтому занимает несколько больше места. Для размещения на сайте лучше выбрать compressed-версию, это максимально «скукоженный» по размеру файл, который предоставляет те же возможности, как uncompressed-версия, с той разницей, что последнюю лучше использовать для разработки — в ней сохранено форматирование и удобно посмотреть, как реализована та или иная функция. Допустим, выбран файл jquery-2.1.1.min.js, который необходимо загрузить в директорию /scripts/. В этом случае, код для подключения будет такой (нужно использовать только 1 вариант, согласно значению тега DOCTYPE):

<script type="text/javascript" src="/scripts/jquery-2.1.1.min.js"></script>
или
<script type="text/javascript" src="/scripts/jquery-2.1.1.min.js" />

В случае, если файлы планируется подключать с ресурса-хостинга JS-библиотек:

<script type="text/javascript" src="http://yastatic.net/jquery/2.1.1/jquery.min.js"></script>
или
<script type="text/javascript" src="http://yastatic.net/jquery/2.1.1/jquery.min.js" />

Всё, после этого можно использовать всю мощь jQuery.

Основы работы с jQuery

Т. к. jQuery — это библиотека, написанная на JavaScript, код необходимо писа́ть в местах, это допускающих. В общем случае — между тегами <script> и </script>.

Выборка одного элемента в JavaScript производилась с помощью метода document.getElementById(‘id-элемента’), нескольких — documents.getElementsByTagName(‘тег нужного элемента’), после чего по списку требовалось пробежаться в цикле и выполнить необходимое дейстие. В jQuery это выполняется гораздо проще, а нужное действие можно применить сразу же ко всем элементам. Для выборки служит такая конструкция:

jQuery('selector').func()
где selector — правило, определяющее часть страницы (тег, класс, идентификатор),
func — метод, который будет применён ко всем полученным элементам.

Основные селекторы jQuery

Функциональность очень сходна с аналогичной в CSS, поэтому, если вы верстали документы, будет гораздо проще. Можно выделить следующие:

  • * — универсальный селектор, выбирающий абсолютно все элементы;
  • tag — селектор элементов, представляющий просто название любого тега (например: p, div, span, a); выбираются все запрашиваемые теги на странице;
  • .class_elems — селектор классов (<div class="class_elems"></div>);
  • #id_elem — селектор идентификаторов (<span id="id_elem"></span>)
  • tag[attr="value"] — селектор атрибутов (<input type="text">);
  • elem1 elem2 — комбинатор потомков — элеметны (теги, классы, идентификаторы) elem2, расположенные внутри elem1 (p i → <p><b><i>text</i></b></p>);
  • elem1 > elem2 — комбинатор «детей» — элеметны elem2, непосредственно вложенные внутрь elem1 (p > b → <p><b><i>text</i></b></p>), в отличие от предыдущей конструкции, p > i не найдёт ни одного элемента, т. к. i не является прямым потомком p (вложен в b);
  • elem1 + elem2 — комбинатор «следующий брат» — elem2, расположенный (не вложенный!) сразу же после elem1, по сути — следующий элемент (b + i → <b>b</b><i>i</i>);
  • elem1 ~ elem2 — комбинатор «нижеследующие братья» — elem2, расположенные (не вложенные!) после elem1, в отличие от предыдущего пункта, ищутся элементы, не обязательно непосредственно следующие за elem1 (b ~ i → <b>b</b><span>span</span><i>i</i>);
  • elem:first — выбор только первого элемента из всех elem;
  • elem:last — выбор только последнего элемента;
  • elem:eq(n) — выбор только n-ного элемента; нумерация начинается с нуля, запись :eq(n) эквивалентна :first;
  • elem:lt(n) — выбор всех элементов до n-ного;
  • elem:gt(n) — выбор всех элементов после n-ного;
  • elem:even — все чётные элементы (важно знать, что нумерация начинается с нуля, поэтому нулевой эменнт является чётным, хотя в потоке следует первым);
  • elem:odd — все нечётные элементы;
  • elem:visible — видимые элементы;
  • elem:hidden — невидимые элементы.

Этого списка должно хватить для получения различных множеств элементов. Как и в CSS, селекторы можно комбинировать для того, чтобы «достучаться» даже до самого глубокого тега:

  • div h2 ~ table — найти внутри div таблицу, следующую после подзаголовка h2;
  • form.reg input[type=»text»] — все теги <input type="text">, расположенные внутри формы с установлленым классом reg;
  • div > table td — ячейки таблицы, непосредственно вложенной в тег div.

jQuery: метод css против свойства style

На самом деле, нет ничего сложного. Если в обычном JS для манипулирования существовал элемент style, то здесь всё гораздо проще:

jQuery('selector').css('property', ['value'])
где property — CSS-свойство,
value — значение свойства.

В случае, года значение не задано, будет возвращено текущее значение свойства. Свойства используются в «чистом виде», т. е. так же, как они записаны в стилях. Для JS пришлось бы писать, например, что-то вроде:

document.getElementById('id').style.backgroundColor = '#f0f';
В jQuery код сократится до:

jQuery('#id').css('background-color', '#f0f');
Но не забываем, что здесь в качестве селектора можно задать сложное правило — библиотека возьмёт на себя поиск элемента. В чистом JS пришлось бы с этим повозиться.

Атрибуты элемента: получить, удалить, добавить, изменить

Получение, добавление или изменение атрибута выполняется аналогично, как и в случае с css, только нужно использвоать другой метод — attr:
jQuery('selector').attr('name', ['value'])
где name — название атрибута,
value — значение атрибута (если не задано, будет возвращено текущее значение).

Для удаления атрибута существует специальный метод:
jQuery('selector').removeAttr('property')

Классы элемента: удалить, добавить, изменить

Классы имеют одное интересное свойство — у элемента их может быть сразу несколько. Поэтому набор функций отличается от привычного.

Добавить класс:
jQuery('selector').addClass('class_name')
где class_name — новый класс.

Удалить класс:
jQuery('selector').removeClass('class_name')
Помимо этого есть весьма полезная возможность «переключения» класса. Принцип работы состоит в том, что если элементу уже назначен класс class_name, он (класс) удаляется, если нет — добавляется:
jQuery('selector').removeClass('class_name')
И осталась ещё одна функциональность, которой не коснулись — проверка, назначен ли элементу заданный класс (true, если да):
jQuery('selector').hasClass('class_name')

Содержимое контейнера — аналог innerHTML

В JavaScript свойство innerHTML служит для получения или установки всего HTML-содержимого элемента. Для jQuery код упрощается до такого:
jQuery('selector').html(['code'])
где code — HTML-код, который будет присвоен найденным элементам. Если параметр не задать, будет возвращено содержимое (HTML).

Как удалить элемент в jQuery?

В отличие от чистого JavaScript, операция вырождается в одну строку кода:
jQuery('selector').remove()

Как вставить текст?

Для JS существует свойство innerText которое, однако, поддерживают не все браузеры. Но мы же не ищем сложных путей, верно?
jQuery('selector').text(['str'])
где str — текст, который будет вставлен. Если параметр не задать, вернётся текущее текстовое содержимое.

Как узнать количество элементов?

Элементарно! Нужно прочитать содержимое свойства length:
var cnt = jQuery('selector').length

Как скрыть или показать элемент?

Для этого существует два метода:
jQuery('selector').hide(); // скрыть
jQuery('selector').show(); // показать

Что ещё может jQuery?

Очень, очень много всего: перехватывать и обрабатывать разнообразные события (например, от мыши или клавиатуры), работать с Ajax (общение с сервером без перезагрузки страницы, например, для организации подгрузки новых сообщений, как это сделано в VK), сериализовать формы для их последующей отправки, создавать элементы и легко добавлять их в требуемое место на странице и прочее.

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

В случае появления вопросов — жду их в комментариях. smile

Рейтинг: 0

Автор публикации

2 070
не в сети 12 месяцев

x64 (aka andi)

Комментарии: 2893Публикации: 405Регистрация: 02-04-2009
Так себеНеплохоХорошоЗамечательноСупер! (Оценок пока нет)
Загрузка...

Оставить комментарий

Политика конфиденциальности

Наш сайт использует файлы cookies, чтобы улучшить работу и повысить эффективность сайта. Продолжая работу с сайтом, вы соглашаетесь с использованием нами cookies и политикой конфиденциальности.

Принять