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

Объединить переменные jquery в один селектор?

Я ищу способ комбинировать переменные jquery. Просматривая связанные вопросы, никто, кажется, не пытается, что я хочу делать.

$("body, div, p") - это один из способов комбинирования с помощью селекторов, но после того, как вы назначаете селектор переменной, как вы их объединяете подобным образом?

Вот один из методов, которые я пробовал, но не смог заставить его работать. Я также попытался помещать их в массив (просто добавляя скобки перед $body и после $p).

$body = $("body");
$div = $("div");
$p = $("p");
$mixed = $($body, $div, $p);
// $mixed = $("body, div, p"); is NOT what I am looking for

В моем фактическом script у меня есть несколько входов <select>, назначенных переменным. Я хотел бы поместить их в группы, так что скажем, что у меня есть <select>, у которого есть "FRUIT", а другой, у которого есть "VEGETABLES", я мог бы поместить их в переменную jquery под названием "ПРОИЗВОДИТЬ". Тогда, если мне нужно что-либо выполнить на обоих этих двух, я использую вместо этого.

... Это может быть просто глупый способ сделать что-то.

4b9b3361

Ответ 1

Возможно, вы ищете . add()?

$mixed = $body.add($div).add($p);

Ответ 2

Для меня это прекрасно работает в jQuery 1.10.2, чтобы просто объединить элементы в литерале массива, прежде чем переходить в конструктор jQuery: $mixed = $([$body, $div, $p]);

Ответ 3

Я тоже искал что-то вроде этого. В моем случае у меня были некоторые объекты, переданные в общую функцию, а некоторые - в памяти, и я хотел применить одно и то же событие click ко всем объектам. В конце я пошел с Джеймсом добавить решение выше, но думал, что я поделюсь другим вариантом.

Если вы помещаете объекты в массив, вы можете использовать каждый итератор для выполнения действий над ними.

[$body, $div, $p].each(function(i,e) { e.DoSomething(); });

Этот синтаксис длиннее, и вы не можете использовать смешанный объект многократного использования, но могут быть некоторые сценарии, где это полезно.