jQuery, как использовать несколько кэшированных элементов - PullRequest
14 голосов
/ 16 декабря 2011

Для своего проекта я использую кэшированные селекторы, чтобы ускорить и увидеть улучшения: (чтобы уменьшить поиск внутри документа)

var sel1 = $('#selector1');
var sel2 = $('#selector2');

как я могу использовать кэшированные селекторы в этой ситуации?Например:

$('#selector1, #selector2').fadeTo(300, 1, 'linear');

Это просто для того, чтобы исправить мой код

Ty :)

Ответы [ 5 ]

17 голосов
/ 16 декабря 2011

Вы можете использовать .add(), чтобы «Добавить элементы в набор соответствующих элементов»:

sel1.add(sel2).fadeTo(300, 1, 'linear');

Документы для .add(): http://api.jquery.com/add

.add() может занятьв:

  • a селектор
  • элементы DOM
  • jQuery объекты
  • и селекторы с контекстом ($('<selector>', <context>))

Вы также можете передать массив элементов DOM в jQuery:

var one = $('#one')[0],
    two = $('#two')[0];

$([one, two]).fadeTo(300, 1, 'linear');

Вот демонстрационная версия: http://jsfiddle.net/3xJzE/

UPDATE

Я создал jsperf из трех различных методов, которые в настоящее время являются ответами: http://jsperf.com/jquery-fadeto-once-vs-twice (кажется, что использование селектора массива является самым быстрым: $([one, two]).fadeTo...)

7 голосов
/ 16 декабря 2011

Для этого можно использовать метод .add();

sel1.add(sel2).fadeTo(300, 1, 'linear');

Будет хорошо, если вы добавите префикс $ при именовании переменных.Таким образом, вы можете отличить их от стандартных объектов JavaScript.Так что это лучше:

var $sel1 = $('#selector1');
var $sel2 = $('#selector2');

$sel1.add($sel2).fadeTo(300, 1, 'linear');
7 голосов
/ 16 декабря 2011

jQuery's add

sel1.add(sel2).fadeTo(300, 1, 'linear');
1 голос
/ 16 декабря 2011

Попробуйте это

sel1.add(sel2).fadeTo(300, 1, 'linear');
1 голос
/ 16 декабря 2011

Если у вас уже есть селекторы, просто примените fadeTo к каждому из них по отдельности. В любом случае JQuery просто нужно будет разобрать селектор ...

sel1.fadeTo(300, 1, 'linear');
sel2.fadeTo(300, 1, 'linear');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...