Что означает второй аргумент $ ()? - PullRequest
2 голосов
/ 08 августа 2011

У меня есть код jQuery следующим образом:

var favorites       = $("#favorites");
var favoritesFooter = $("#favoritesFooter",favorites);

Я не уверен, что означает запятая во 2-м выражении $("#favoritesFooter",favorites);

Также, что будет делать следующее утверждение илипредставлять в вышеуказанном случае;

favoritesFooter.prev().after(newHTML);

Ответы [ 2 ]

7 голосов
/ 08 августа 2011

Это второй параметр $().Как объясняется в документации :

Контекст селектора

По умолчанию селекторы выполняют поиск в DOM, начиная с корня документа,Однако альтернативный контекст может быть задан для поиска с помощью необязательного второго параметра функции $ ().Например, чтобы выполнить поиск в обработчике событий, поиск может быть ограничен следующим образом:

$('div.foo').click(function() {
  $('span', this).addClass('bar');
});

Когда поиск селектора диапазонов ограничен контекстом этого,только промежутки внутри элемента, по которому щелкнули, получат дополнительный класс.

Внутри контекст селектора реализован с помощью метода .find (), поэтому $ ('span', this) эквивалентно $ (this) .find('span').

3 голосов
/ 08 августа 2011

Второй оператор означает «поиск элемента с идентификатором favoritesFooter внутри объекта jQuery favorites».

Поскольку вы имеете дело с ID, который должен быть уникальным, это бессмысленно - $("#favoritesFooter") - лучшая практика.

Относительно favoritesFooter.prev() это также бессмысленно, предполагая, что идентификатор уникален, поэтому у вас есть коллекция только с одним элементом, поэтому prev() вернет пустую коллекцию jQuery.

.prev() примет предыдущий элемент DOM - в вашем случае он будет нажимать newHTML прямо перед элементом favoritesFooter.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...