JavaScript. Подробное руководство, 6-е издание, стр. 328
<b>$("a[href]").closest("div") // Самые внутренние элементы <div>, содержащие ссылки </b><b>$("а[href]").parentsUntil():not(div)") // Все элементы <div>, непосредственно</b><b> // обертывающие элементы <а></b>19.8.2.2. Возврат к предыдущему выбору
Чтобы обеспечить возможность составления цепочек вызовов методов, большинство методов объекта
<b>jQuery</b><b>jQuery</b>Однако на самом деле ситуация несколько сложнее. Когда методы выбора, описанные здесь, создают и возвращают новый объект
<b>jQuery</b><b>jQuery</b><b>jQuery</b><b>end()</b><b>jQuery</b><b>end()</b><b>// Отыскать все элементы <div>, затем внутри множества выбранных элементов отыскать </b><b>// элементы <р>. Выделить элементы <р> цветом и затем окружить рамками элементы <div>.</b><b>// Сначала рассмотрим, как это сделать без цепочек вызовов методов</b><b>var divs = $("div");</b><b>var paras = divs.find("p");</b><b>paras.addClass("highlight"); </b><b>divs.css( "border", " solid black 1px");</b><b>// А теперь то же самое, составив цепочку вызовов методов</b><b>$("div"). find("p").addClass("highlight").end().css("border", "solid black 1px");</b><b>// To же самое можно реализовать без вызова метода end(), просто переупорядочив операции </b><b>$("div").css("border"', "solid black 1рх”).find("р").addClass("highlight”);</b>Если вам когда-нибудь потребуется вручную определить множество выбранных элементов и обеспечить его совместимость с методом
<b>end()</b><b>pushStack().</b><b>end():</b><b>var sel = $("div”); // Выбрать все <div></b><b>sel.pushStack(document.getElementsByTagName("p")); // Заменить его множеством</b><b> // всех элементов <р></b><b>sel.end(); // Восстановить множество элементов <div></b>Теперь, когда мы познакомились с методом
<b>end()</b><b>andSelf()</b><b>jQuery</b><b>andSelf()</b><b>add()</b><b><р></b><b><div></b><b><div>:</b><b>$("div").find("р").andSelf(). // Отыскать <p> в <div> и объединить их</b><b>addClass("highlight"). // Выделить их все цветом</b><b> end().end(). // Вытолкнуть со стека дважды до $("div")</b><b> css("border", "solid black 1px"); // Добавить рамки к элементам <div></b>19.9. Расширение библиотеки jQuery с помощью модулей расширений
Библиотека jQuery написана так, что позволяет легко добавлять в нее новые функциональные возможности. Модули, добавляющие новые функциональные возможности, называются расширениями (plug-in), большое количество которых можно отыскать на сайте http://plugins.jquery.com. Расширения для библиотеки jQuery являются обычными файлами с программным кодом на языке JavaScript, и, чтобы задействовать их в своих веб-страницах, достаточно просто подключить их с помощью элемента
<b><script>,</b>Создание собственных расширений для библиотеки jQuery является почти тривиальной задачей. Вся хитрость заключается в объекте-прототипе
<b>jQuery.fn</b><b>jQuery</b><b>jQuery</b>