将jquery变量组合到一个选择器中

Combine jquery variables into one selector?

本文关键字:一个 选择器 jquery 变量 组合      更新时间:2023-09-26

我正在寻找一种组合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

在我的实际脚本中,我已经为变量分配了一些<select>输入。我想把它们分组,比如说我有一个<select>,它有"FRUIT",另一个有"VEGETABLES",我可以把它们都放在一个名为"PRODUCE"的jquery变量中。然后,如果我需要对两者都执行任何操作,我会使用product。

不过,这可能只是一种愚蠢的做事方式。

也许您正在寻找.add()?

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

对我来说,在jQuery 1.10.2中,在传递到jQuery构造函数之前简单地组合数组文本中的元素是很好的:$mixed = $([$body, $div, $p]);

我也在寻找这样的东西。在我的例子中,一些对象被传递到一个公共函数中,一些在内存中创建,我想将相同的点击事件应用于所有对象。最后,我选择了詹姆斯上面的加法解决方案,但我认为我会分享另一个选择。

如果您将对象放入数组中,则可以使用each迭代器对它们执行操作。

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

这种语法更长,并且您没有得到可重用的$mixed对象,但在某些情况下这可能很有用。