Подтвердить что ты не робот

JQuery, как использовать несколько кешированных элементов

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

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

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

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

Это просто отполировать мой код

Ty:)

4b9b3361

Ответ 1

Вы можете использовать .add() для "Добавить элементы в набор согласованных элементов":

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

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

.add() может принимать:

  • селектор
  • Элементы 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...)

Ответ 2

jQuery add

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

Ответ 3

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

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

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

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

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

Ответ 4

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

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

Ответ 5

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

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