Шаг 20.
Библиотека jQuery.
Селекторы. Составление цепочек методов

    На этом шаге мы рассмотрим построение цепочек методов.

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




Предыдущий шаг Содержание Следующий шаг