На этом шаге мы рассмотрим построение цепочек методов.
Комбинирование методов обхода, которое мы рассмотрели на предыдущем шаге, иллюстрирует такую особенность библиотеки 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.