Цепные кэшированные переменные, такие как селекторы в jQuery? - PullRequest
0 голосов
/ 27 декабря 2011

Допустим, у меня есть две переменные, например: var a = $('#a'), b = $('#b');

Как мне заменить (если это вообще возможно) $('#a, #b'); на что-то, используя a и b?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 27 декабря 2011

Вы можете использовать метод add:

var $foo = a.add(b)

[EDIT] Вот живой пример jsfiddle

1 голос
/ 27 декабря 2011

Мне нравится ответ Jmax, но если вы хотите немного больше вариантов, лучше всего запросить атрибут id элемента:

var myDiv = $("#MYdivID");

...

//then select your div like so:
$("#"+myDiv.attr("id"))

это синтаксически немного сложнее, чем ответы Jmax, но этоспособ работы с классами, идентификаторами, проверенными атрибутами, ... Кроме того, этот способ работает лучше, если вы склонны создавать идентификаторы элементов, такие как "# savebutton_1", "# savebutton_2", .... (например, на индексных страницах).Вы получаете большую свободу в создании своего селектора так, как хотите, но при этом сохраняете возможность ссылки на переменную вместо жесткого кодирования нового селектора.

Для вашего примера:

$('#'+ a.attr('id') +', #' + b.attr(id));

Iпризнать, что это немного сложнее для чтения, но совершенно правильно и оперативно:)

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