Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

jquery1

.pdf
Скачиваний:
8
Добавлен:
08.02.2015
Размер:
750.86 Кб
Скачать

Глава 1.

Введение вjQuery

В этой главе :

x Для чего нужна библиотека jQuery

x Что такое « ненавязчивый JavaScript» x Основные элементы понятия jQuery

x jQuery идругие библиотеки JavaScript

Язык

JavaScript,

большую

 

часть своей жизни считавшийся

среди-

серь

езных

веб -разработчиков

« игрушечным », обрел

нынешний

авторитет

на волне интереса кполнофункциональным

веб -приложениямтех-и

 

нологиям

Ajax. Языку

пришлось

очень быстро

повзрослеть

, так как

разработчики

клиентских

 

сценариев

отказались

от приема

копирова-

ния ивставки

программного

кода JavaScriptпользув полноценных

 

биб-

 

лиотек , которые

позволяют

решать сложные проблемы , связанныераз-

с

личиями между

броузерами

разных

типовреализуют,

новые

иулуч-

 

шенные парадигмы разработки веб -приложений .

 

 

 

 

 

 

jQuery, появившаяся мирев

библиотек

JavaScript

 

с некоторым

 

опозда-

нием , покорила

сообщество

веб -разработчиков

, быстро

завоевав-

под

держку крупных

компаний

, использующих веб -приложения

-для реше

ния важных

задач . числоВ

наиболее

заметных

пользователей

 

jQuery

входят такие компании , как

IBM, Netflix, Amazon, Dell, Best Buy,

 

Twitter, Bank of America

 

множествои

других

известных

компаний .

Компания

Microsoft

даже включила

библиотеку

jQueryсостав

ин-

 

струментов

, поставляемых

 

вместе

со средой

разработки

Visual Studio,

а компания

Nokia использует

jQuery

во всех своих

телефонах

-, включа

ющих

их компонент

Web Runtime.

 

 

 

 

 

 

 

 

 

 

 

36

 

 

 

 

 

 

 

Глава 1. Введение jQueryв

 

И это вовсене случайно

!

 

 

 

 

 

 

 

 

 

 

В отличие от других инструментов

, сконцентрированных

на примене-

нии сложных

методик

JavaScript, jQuery

стремится

изменить -представ

ление веб -разработчиков принципахо

создания

полнофункциональных

 

веб -приложений

. Вместо того чтобы тратить

время

на жонглирование

непростыми

 

возможностями

языка JavaScript, разработчики -получи

ли возможность

с помощью

каскадных

таблиц стилей (Cascading Style

Sheets,

CSS),

расширенного

языка разметки

гипертекста

(eXtensible

Hypertext Markup Language, XHTML)

старогои доброго

JavaScript

напря-

 

мую манипулировать

элементами

страницывоплотить

мечту бысто

рой

 

разработке

веб -приложений .

 

 

 

 

 

 

 

 

 

В этой книге

мы во всех подробностях

рассмотрим

 

, что нам может-

пред

ложить

jQuery

как авторам

полнофункциональных

интерактивных

 

веб -приложений

. Для начала узнаем , чтодействительности

может

 

дать jQuery

при разработке

веб -страниц .

 

 

 

 

 

 

 

Последнюю версию jQuery можно получить на сайте проекта jQuery: http://jquery.com/. Установка jQuery заключается простомв сохране-

нии файлов библиотеки пределахв досягаемости веб -приложенияис- и пользовании HTMLтега<script>, подключающего библиотекувашейк странице , например :

<script type=”text/javascript” src=”scripts/jquery-1.4.js”></script>

Вместе сзагружаемыми

примерами

программного кода распространя-

ется версия библиотеки

jQuery,помощьюс

которой выполнялось тести-

рование этих примеров

( доступна

по адресуhttp://www.manning.com/

bibeault2).

 

 

 

1.1. Больше

возможностей

 

, меньше

кода

 

 

 

Потратив

некоторое

время

на попытки

привнести

динамическую-

функ

циональность

ваши

страницы

, вы обнаружите , что постоянно - следуе

те одному

итому

же шаблону

: сначала отбирается

элемент или группа

элементов

, затем над ними выполняются

некоторые

действия -. Вы мо

жете

скрывать

или показывать

элементы , добавлятьним класс CSS,

 

 

создавать

анимационные эффекты

 

или изменять

атрибуты .

 

 

 

С обычным

JavaScript

для решения

каждой

из задач

потребуются-

де

сятки

строк

программного

кода . Создатели

jQuery

разработали

свою

библиотеку

именно

для того , чтобы

сделать

наиболее

общие

задачи-

три

виальными

. Например , любой , кому приходилось

 

иметь делогруп- с

 

 

пами

радиокнопок

на JavaScript,

знает , насколько

это утомительно–

 

определить

, какая

из радиокнопокгруппев

отмечена настоящийв

мо-

 

 

мент

времени ,получить

значение

ее атрибутаvalue. Для этого необхо-

 

 

димо

отыскать

радиогруппу

, последовательно

обойти

все радиокнопки

в группе , отыскать

элементустановленным

атрибутомchecked и затем

 

 

получить

значение

атрибутаvalue этого

элемента .

 

 

 

 

 

 

1.1. Больше возможностей

, меньше

кода

37

 

Ниже приводится

вариант

реализации

такой задачи на JavaScript:

var checkedValue;

 

 

 

 

var elements = document.getElementsByTagName(‘input’); for (var n = 0; n < elements.length; n++) {

if (elements[n].type == ‘radio’ && elements[n].name == ‘someRadioGroup’ && elements[n].checked) {

checkedValue = elements[n].value;

}

}

Для сравнения ниже показано , как ту же задачу можно решить- , ис пользуя библиотеку jQuery:

var checkedValue = $(‘[name=”someRadioGroup”]:checked’).val();

Не волнуйтесь

, если сейчас эта строка кажется

вам странной

. Вскоре

вы поймете , как она работаетсами,

будете использовать

короткие

, но

мощные

инструкции

 

jQuery,

чтобы добавить

живости своим

страни-

цам . Давайте коротко рассмотрим , как работает этот фрагмент

кода .

Эта инструкция

отыскивает

все элементы , атрибутname которых

име-

 

 

ет значениеsomeRadioGroup ( напомним

, что радиогруппа

 

формируется

за

счет присваивания

всем ее элементам

одноготогои же имени ), затем

 

она оставляет

только

элементыустановленными

 

атрибутамиchecked

 

 

и извлекает

значение

атрибутаvalue найденного

элемента

. ( Это может

 

быть только один элемент , потому

что броузеры

допускают

возмож-

ность появления

только одного

отмеченного

элементарадиогруппев

.)

 

 

Истинная

 

мощь

этой инструкции

jQuery заложенаселекторев

– вы-

 

 

ражении

идентификации

элементов

, позволяющем

идентифицировать

и отбирать

нужные

элементы

страницыданном. В

случае– все отмечен-

 

 

ные элементы

радиогруппев

.

 

 

 

 

 

 

 

 

 

 

 

 

 

Если вы еще не загрузили

исходные

тексты примеров

для этой книги ,

сейчас самое

время сделать это . Вы можете получить

их , обратившись

на сайт книги

по адресуhttp://www.manning.com/bibeault2 ( не забудьте

 

 

добавить

2 концев ). Загрузив

архив , распакуйте

перейдитеего

 

ктре-

 

 

буемому

файлу

самостоятельно

либо воспользуйтесь

 

замечательной-

на

чальной

страницейindex.html, расположенной каталогев

, куда был рас-

 

пакован

архив .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Откройте вброузере ссылкуchapter1/radio.group.html. На рис .1.1 показано , как выглядит страница , использующая только что исследован-

ную нами инструкцию jQuery, которая определяет , какая из -радиокно пок была отмечена .

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

38

Глава 1. Введение jQueryв

Позднее мы узнаем , как легко создавать эти селекторы , но сначалапо смотрим , как изобретатели jQuery представляют себе эффективноеис пользование JavaScript нашихв страницах .

Рис . 1.1.Библиотека jQuery позволяет определить какая,

из радиокнопок

была выбрана с, помощью единственной инструкции !

 

1.2. Ненавязчивый

JavaScript

 

 

 

 

 

 

 

 

 

 

 

Возможно

 

, вы помните

суровые

времена

до появления

CSS,

когда мы

были вынуждены

смешиватьHTMLв

- страницах

стилевую

разметку

со

структурой

 

документа

. Эти воспоминания

почти

наверняка

заставят

содрогнуться

любого , кто создавал

тогда

страницы .

 

 

 

 

 

 

Добавление

 

CSS арсеналв

инструментов

веб -разработчика

 

позволяет

отделить

стилистическую

информацию

от структуры

документапро-

и

водить на заслуженный

отдых

такие

теги <font>, как . Отделение

стиля

 

от структуры

не только упрощает

 

управление

документамипри, но-

и

дает им гибкость

, позволяя добиться

полного

изменения

стиляотобра

жения страницы простой заменой таблицы стилей .

 

 

 

 

 

 

Немногие

 

из нас захотели

бы вернутьсяпрошлоев

, когда

стили

отобра-

жения применялись

непосредственноHTMLк

- элементам

. всеИ же до

 

сих пор обычной

остается

разметка

вроде

этой :

 

 

 

 

 

 

 

<button

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

type=”button”

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

onclick=”document.getElementById(‘xyz’).style.color=’red’;”>

 

 

 

 

 

 

 

Click Me

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

</button>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Здесь видно , что стиль

элемента -кнопки , включая шрифт

надписи на

ней , определяется

 

не тегом<font> или другой

нежелательной

разметкой

стиля , азадается правилами CSS,

действующимипределахв

страни-

 

цы . Вэтом объявлении

не смешивается

 

разметка

стиляструктураи

, од-

 

нако здесь

налицо

смешениеповедения и структуры за счет включения

кода JavaScript,

выполняемого

по щелчку по кнопкеод, разметкив

 

элемента <button> ( в данном

случае

щелчок

по кнопке

вызывает - окра

шивание

вкрасный

цвет некоторого

элемента

объектной

модели-

доку

1.2. Ненавязчивый

JavaScript

 

 

 

 

 

39

 

 

мента (Document Object Model, DOM), атрибут id которого

имеет

значе-

 

ние xyz).

 

 

 

 

 

 

 

 

 

 

Рассмотрим , как можно

было бы улучшить эту ситуацию .

 

 

 

1.2.1. Отделение

поведения

от разметки

 

 

 

 

 

По тем же причинам , по которым желательно отделять

стиль -от раз

метки HTMLдокумента

, также

( если не более ) желательно

было-

бы от

делить поведение элементов

от их разметки .

 

 

 

 

 

В идеале

HTMLстраница должна иметь

структуру

, как показано

на

рис .1.2, где разметка , информация стиляхо

и реализация

поведения

 

находятся своих отдельных нишах .

 

 

 

 

 

 

<html>

 

 

 

 

 

 

 

 

 

 

<head>

 

 

 

 

 

 

 

 

 

 

 

СТИЛЬ

 

 

 

 

 

 

 

 

 

Локальные элементы <style>

 

 

 

 

 

 

 

 

и импортированные

таблицы стилей

 

 

 

 

 

 

 

 

ПОВЕДЕНИЕ

 

 

 

 

 

 

 

 

Локальные элементы <script>

 

 

 

 

 

 

 

 

и импортированные

файлы сценариев

 

 

 

 

 

 

 

</head>

<body>

СТРУКТУРА Структурные элементы разметки HTML

</body>

</html>

Рис . 1.2.Отделение элементов определяющих, структуру стиль, и поведение компонентов страницы повышает, удобочитаемость исходного кода и упрощает его сопровождение

Эта стратегия

, известная

под названиненавязчивыйм

JavaScript, была

предложена

разработчиками

jQuery теперьи поддерживается всеми

большими

библиотеками

JavaScript, помогая авторам страниц

достигать

этого отделения при разработке страниц . Библиотека

jQuery

сделала

эту стратегию

популярной

, и ее ядро выстроено

так , что ненавязчивый

JavaScript

поддерживается

очень органично . Ненавязчивый

JavaScript

предполагает

, что ошибочно

присутствиелюбых выражений

или ин-

струкций на языке JavaScriptтегев<body> HTMLстраниц– как ватри-

40

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Глава

1. Введение jQueryв

 

 

 

бутах HTMLэлементов

( напримерonclick, ), так и в блоках

сценариев

 

 

в теле страницы .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вы можете

спросить

: « Как же пользоваться

кнопкой

без атрибутаon-

 

 

click?» Рассмотрим

такое определение

 

кнопки :

 

 

 

 

 

 

 

 

 

<button type=”button” id=”testButton”>Click Me</button>

 

 

 

 

 

 

 

 

 

Оно гораздо

 

 

проще ! Но теперь

кнопка

простоничего не делает. Мы мо-

 

 

жем щелкать

на ней весь деньне получим

никакого

результата .

 

 

Давайте исправим

этот недостаток .

 

 

 

 

 

 

 

 

 

 

 

 

 

1.2.2. Отделение

 

сценария

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вместо того чтобы

встраивать

определение

 

поведения

кнопкиее раз- в

 

 

метку , мы поместим

егоблокв

сценария

разделев <head> страницы за

 

 

пределами тела документа

, как показано

ниже :

 

 

 

 

 

 

 

 

 

<script type=”text/javascript”>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

window.onload = function() {

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

document.getElementById(‘testButton’).onclick = function() {

 

 

 

 

 

 

 

document.getElementById(‘xyz’).style.color = ‘red’;

 

 

 

 

 

 

 

 

};

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

};

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

</script>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В обработчике

события

страницыonload мы связываем

функциюатрис -

 

 

бутом onclick элемента

-кнопки .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Обработчик

 

 

событияonload ( а не встроенный

 

код ) используется

потому ,

 

что нам нужно , чтобы элемент -кнопкасуществовалуже

к тому момен-

 

 

ту , когда мы попытаемся

манипулировать

 

им . ( В разделе1.3.3 будет

по-

 

 

казано , что

 

 

jQuery предоставляет

лучший

способ

размещения

 

такого

 

программного

кода .)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Примечание

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для достижения

более высокой

производительности

блоки

сценариев

 

можно

 

 

поместить

вконец тела документа , однако для современных

броузеров-

по

 

 

лученный

прирост

производительности

будет

совсем

незначительным

 

. Здесь

 

 

важно понять , что не следует

смешивать

реализацию

поведения

со-структур

 

 

ной разметкой

элементов .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Если в этом примере

что -то покажется

вам непонятным

( например

,

 

объявления

 

 

встроенных

функций ), не пугайтесьприложении! В

при-

 

 

веден обзор

 

 

понятий

JavaScript,

которые

 

помогут

вам эффективно-

ис

 

пользовать

jQuery. Кроме тогооставшейся,

 

части

главы мы узнаем ,

 

 

как jQuery

позволяет писать код , аналогичный

предыдущему

 

, более

 

короткий , более

простойодновременнои

 

более

гибкий .

 

 

 

 

 

 

Ненавязчивый JavaScript– это мощная методика , позволяющая - раз делить обязанности веб -приложениях , но за это приходится платить .

1.3. Основы jQuery

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

41

 

 

 

 

Возможно

, вы уже обратили

внимание

, что для достижения

постав-

 

ленной цели нам потребовалось

 

добавить немного

больше строк

кода ,

чем в случае , когда

код

JavaScript

помещался

непосредственнок д

в

 

 

разметки

. Ненавязчивый

JavaScript

не толькоможет привести

куве-

 

 

 

личению

объема

программного

 

кода , но также

требует определенной

 

дисциплины

 

применения

хорошо

зарекомендовавших

себя шаблонов

 

программирования

 

 

клиентских

 

сценариев .

 

 

 

 

 

 

 

 

 

 

Но вэтом нет ничего

 

плохого– все , что побуждает

нас писать свойкли

 

 

ентский код так же внимательно

аккуратнои

, как обычно

пишется

 

 

код , размещаемый

 

на сервере , нам только

на пользу . Однако

если-

не ис

пользовать

jQuery,

то у вас появляется

лишняя

работа .

 

 

 

 

 

 

Как уже говорилось

 

, разработчики

 

jQuery

сосредоточили

свои усилия

на том , чтобы

упростить нам программирование

странпримененицс -

 

 

 

ем методик

ненавязчивого

JavaScript,

не платя

за это лишними-

уси

 

лиями илишним

программным

кодом . Мы считаем , что эффективное

 

использование

jQuery

позволяет

нам привнести

больше

возможностей

 

в наши страницы

, создавая

сценариименьшего объема .

 

 

 

 

 

 

 

 

А теперь

рассмотрим

, как библиотека

jQuery

позволяет

расширять

 

 

функциональность

 

 

страниц

без лишних усилийголовнойи

боли .

 

 

 

 

 

1.3. Основы

 

jQuery

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Суть jQuery втом , чтобы отбирать

элементы HTMLстраницвыполи -

 

 

 

нять над ними некоторые

операции

. Если вы знакомыCSS, тос хорошо

 

 

 

понимаете , насколько

удобны

селекторы , которые

описывают группы

 

элементов

, объединенные

по каким -либо атрибутам

или по местополо-

 

жению вдокументе . Благодаря

jQuery

вы сможете , используя

-свои зна

ния , значительно

упростить

код JavaScript.

 

 

 

 

 

 

 

 

 

 

 

Библиотека

jQuery первую

очередь

обеспечивает

непротиворечивую

 

 

работу программного

кода во всех основных

типах

броузеров

,- решая

та

кие сложные

проблемы

JavaScript,

 

как ожидание

загрузки

страницы

,

перед тем как выполнить

какие -либо операции .

 

 

 

 

 

 

 

 

На тот случай , если вбиблиотеке обнаружится недостаток функциональности , разработчики предусмотрели простой , но весьма действен-

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

Но для начала давайте посмотрим , как знание CSS помогает создать краткий , но мощный программный код .

1.3.1. Обертка jQuery

С введением

CSS веб -технологии с целью отделить

представление от

содержимого

понадобился способ , позволяющий

ссылаться нагруп

42

 

 

 

 

 

 

 

 

 

 

Глава 1. Введение jQueryв

 

пы элементов

страницы

 

из внешних таблиц

стилейрезультате. В

был

разработан

метод , основанный

на использовании

селекторов

, которые

представляют

элементы

на основе их атрибутов

или местоположения

в HTMLдокументе .

 

 

 

 

 

 

 

 

 

 

 

 

Те , кто знаком языкомс

разметки

XML,

могут

вспомнить

язык XPath,

обеспечивающий

возможность

выбора

элементов

из документов XML.

Селекторы

CSS,

реализующие

аналогичную

концепцию

, приспособлен-

ную для использования страницахв

HTML,

являются более краткими

и вообще

считаются более

простымипониманиив

.

 

 

 

 

Например

, селектор

 

 

 

 

 

 

 

 

 

 

 

 

p a

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ссылается

на все ссылки

(элементы<a>), вложенные элементыв <p>. Биб-

лиотека

jQuery использует

те же самые

селекторыподдерживает

не

только обычные селекторы , применяемые

сегодняCSS,в но идругие ,

еще не полностью

реализованныебольшинстве

броузеров , включаясе

лекторы , определяемые

 

спецификацией

.CSS3

 

 

 

 

Чтобы отобрать группу элементов , достаточно передать функции jQuery простой селектор :

$(selector)

или

jQuery(selector)

Функция $(), на первый

взгляд , необычна , но большинство

пользовате-

лей быстро начинают применять

ее благодаря

ее краткости

. Например

получить группу ссылок , вложенныхэлементыв

<p>, можно

следую-

щим способом :

 

 

 

 

 

 

 

 

 

 

$(“p a”)

 

 

 

 

 

 

 

 

 

 

 

Функция $() ( псевдоним

функцииjQuery()) возвращает

специальный

объект JavaScript, который

содержит

массив

элементов

DOM,- соответ

ствующих указанному селекторуэтого. У

объекта

много удобных

пред-

определенных

методов , способных

воздействовать

на группу

элементов

На языке программирования

такого

рода конструкция

называется

оберткой (wrapper), потому что она « обертывает

» отобранные

элементы

дополнительной

функциональностью

. Мы будем использовать

термин

обертка jQuery, или обернутый набор, ссылаясь

на группы

элементов ,

управлять которыми позволяют методы , определенныеjQuery.в

 

 

Предположим

, нам требуется реализовать

постепенное

исчезновение

всех элементов<div> с классом

CSSnotLongForThisWorld. jQuery

позволя-

ет сделать это так :

 

 

 

 

 

 

 

 

 

 

$(“div.notLongForThisWorld”).hide();

1.3. Основы jQuery

 

 

 

 

 

 

 

 

 

 

 

 

43

 

 

Особенность

многих из этих методов , часто

называемыхметодами

 

обертки jQuery,

состоит

томв , что по завершении

своих действий- ( на

 

пример , действия , обеспечивающего

исчезновение

) они возвращают

ту

же самую группу элементов , готовуювыполнениюк

другой

операции .

 

Предположим

, что после того как элементы

исчезнутим ,нужнок

до-

 

бавить класс CSSremoved. Записать

это можно

так :

 

 

 

 

 

 

$(“div.notLongForThisWorld”).hide().addClass(“removed”);

 

 

 

 

 

 

 

Такую цепочку (chain) методов

jQuery

можно

продолжать

до бесконеч-

 

ности . Вы без труда сможете

отыскать Интернетев

примеры цепочек

 

jQuery,

состоящих

из десятков

методовпоскольку. А

каждая

функция

 

работает

сразу

со всеми элементами

, соответствующими

указанному-

се

лектору , вам не потребуется

выполнять

обход массива элементовцик- в

 

ле . Все нужное

происходит

за кулисами

!

 

 

 

 

 

 

 

 

Но даже несмотря

на то , что группа

отобранных

элементов

представле-

на довольно

сложным

объектом

JavaScript,случаев

необходимости

 

мы

 

можем обращаться

нейк как кобычному

массиву

элементов итоге. В

 

следующие

две инструкции

дают идентичные

результаты

:

 

 

 

$(“#someElement”).html(“

Добавим немного

текста ”);

 

 

 

 

 

 

 

или

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

$(“#someElement”)[0].innerHTML =

 

 

 

 

 

 

 

 

 

 

 

 

“ Добавим

немного

текста ”;

 

 

 

 

 

 

 

 

 

 

 

 

Поскольку здесь мы использовали селектор по атрибутуID, ему будет соответствовать один элементпервом. В случае используется методбиб лиотеки jQuery– html(), который замещает содержимое элемента DOM некоторой HTMLразметкой . Во втором случаепомощьюс jQuery -из влекается массив элементов , выбирается первый элемент массиваин- с дексом 0 и затем его содержимое замещаетсяпомощьюс самой обычной операции присваивания свойствуinnerHTML.

Если мы захотим

получить

тот же результатпомощьюс

селектора ,-ко

торый

может отобрать несколько

элементов , то можно использовать

любой

из двух следующих

способов , дающих

идентичные результаты

(впрочем , второй

вариант

не рекомендуется

при использованиибиблио

теки jQuery):

 

 

 

 

 

$(“div.fillMeIn”)

 

 

 

 

 

.html(“ Добавим

немного текстагруппув

элементов ”);

 

 

или

var elements = $(«div.fillMeIn»);

for( var i=0; i < elements.length; i++) elements[i].innerHTML =

“ Добавим немного текстагруппув элементов ”;

С увеличением

сложности

поставленных задач способность

jQuery-

соз

давать цепочки

из вызовов

методов по -прежнему позволяет

уменьшить

44

 

Глава

1. Введение jQueryв

 

число строк

программного кода , необходимого

для получения - желае

мых результатов . Библиотека jQuery поддерживает не только - селекто

ры , которые

вы уже знаете любите , но иболее сложные селекторы ,

определенные

как часть

спецификации CSS,дажеи некоторые нестан-

дартные селекторы .

 

 

 

Вот несколько примеров

:

 

 

Селектор

Результат

 

 

$(“p:even”) Отбирает все четные элементы<p> $(“tr:nth-child(1)”) Отбирает первые строки во всех таблицах

$(“body > div”) Отбирает элементы<div>, являющиеся прямыми потомками элемента<body>

 

$(“a[href$=pdf]”)

 

Отбирает

ссылки на файлы

PDF

 

 

 

 

 

 

 

 

 

$(“body > div:has(a)”)

Отбирает элементы<div>, которые являются прямыми

 

 

 

 

 

 

 

потомками

элемента<body> и содержат

ссылки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Мощная

штука !

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для начала вы можете

использовать

свое знание

CSS,затем

изучи-

 

 

те более

сложные

селекторы , поддерживаемые

библиотекой

. Очень-

по

дробно селекторы

будут

рассматриватьсяглаве 2, а их полный

пере-

 

 

чень вы найдете

по адресуhttp://docs.jquery.com/Selectors.

 

 

 

 

 

 

 

Выбор элементов

DOM для выполнения

операций– это самое обычное

 

 

дело для наших страниц , некоторыхв

случаях

требуется

выполнить

 

какие -либо действия

, никак не связанныеэлементамис

 

DOM.

Давайте

 

коротко

рассмотрим , что еще может

предложить

jQuery

помимо-

мани

пулирования

элементами .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.3.2. Вспомогательные

функции

 

 

 

 

 

 

 

 

 

 

 

Хотя обертывание

 

элементов для выполнения

операций

над– наи-ми

 

 

более частое

применение

функции$() в библиотеке

jQuery,

это не един-

 

ственная

 

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

. Одна из ее дополнительных

возможно-

стей – выступать

качестве префикса пространства имен (namespace)

 

 

для вспомогательных

функций

общего

назначения

 

. Обертка jQuery,-

по

лучаемая

 

врезультате

вызова$() с селектором

, предоставляет

 

авторам

 

страниц

столько

возможностей

, что другими

вспомогательными-

функ

циями редко

кто пользуется . Мы не будем

подробно

рассматривать

эти

функции

 

до главы

6, где описаны подготовительные

действия -для со

здания подключаемых

 

модулей

jQuery.

Но некоторые

из этих функций

встретятся

вам следующихв

разделах

, поэтому

мы опишем

их здесь .

 

Поначалу

 

способ

обращения этимк

функциям

может

казаться

немного

 

странным

. Давайте

рассмотрим

пример

использования

вспомогательной

функции

, которая

усекает

строки . Вызов этой функции

выглядит

так :

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]