На этом шаге мы рассмотрим построение цепочек методов.
Комбинирование методов обхода, которое мы рассмотрели на предыдущем шаге, иллюстрирует такую особенность библиотеки jQuery, как возможность составления цепочек методов. С ее помощью в одной строке программного кода можно отбирать несколько наборов элементов и выполнять множество операций над ними. Возможность составления цепочек не только помогает обеспечить компактность программного кода, но и позволяет увеличить производительность, когда альтернативное решение заключается в повторном использовании селектора.
К тому же возможно разбить одно строку программного кода на несколько строк для большей удобочитаемости. Например, последовательность вызовов методов может быть записана в виде одной строки...
$('td:contains(Сказка)').parent().find('td:eq(1)')
.addClass('highlight').end().find('td:eq(2)')
.addClass('highlight');
$('td:contains(Сказка)') // Найти все ячейки, содержащие текст "Сказка"
.parent() // Выбрать их родительские элементы
.find('td:eq(1)') // Найти ячейки, являющиеся вторыми потомками
.addClass('highlight') // Добавить класс "highlight"
.end() // Вернуть к родителю ячейки, содержащей текст
.find('td:eq(2)') // Найти ячейки, являющиеся третьими потомками
.addClass('highlight'); // Добавить класс "highlight"
Безусловно, такая реализация обхода дерева DOM находится на грани абсурда. Мы определенно не рекомендуем использовать ее, так как в нашем распоряжении имеются более простые и более прямые методы. Цель этого примера состоит лишь в том, чтобы продемонстрировать огромную гибкость, предоставляемую возможностью составления цепочек.
Цепочки можно представлять себе, как целые параграфы слов, произносимых на одном дыхании - они работают очень быстро, но иногда их весьма трудно понять. Разбиение на несколько строк и добавление грамотных комментариев в конечном итоге помогут сэкономить больше времени.
На следующем шаге мы рассмотрим доступ к элементам DOM.