Javascript jquery选择器中的多个变量

Javascript jquery选择器中的多个变量,javascript,jquery,Javascript,Jquery,我有这样的代码 $(".class1 .class2").on('click', function(){ //Do something }); 我正在尝试使用变量实现类似的功能: var1=".class1"; var2=".class2" $(var1 var2).on('click', function(){ //Do something }); 我看到var1和var2被设置为正确的值,但每次我尝试使用2个变量作为选择器时,都会失败。当我保持单

我有这样的代码

$(".class1 .class2").on('click', function(){
 //Do something        
});
我正在尝试使用变量实现类似的功能:

var1=".class1";
var2=".class2"

$(var1 var2).on('click', function(){
   //Do something        
});
我看到
var1
var2
被设置为正确的值,但每次我尝试使用2个变量作为选择器时,都会失败。当我保持单击触发器不变,并分别在代码的其他地方使用
var1
var2
(仅
var1
var2
但不在同一选择器列表中)时,它可以工作。有什么建议吗


我想我使用了
var3
连接
var1
var2
,但我试图减少另一个变量。

你缺少了空间,没有它,它就会变成
.class1.class2
,这意味着元素必须同时拥有两个类,而不是第一个类的后代,等等

var1 = ".class1";
var2 = ".class2";

$(var1 + ' ' + var2).on('click', function(){
   //Do something        
});
另一个选项是
find()


仅仅做
$(var1 var2)
var fail=var1 var2相同这是一个语法错误。

您的示例代码有一个JavaScript语法错误(如果您想连接var1和var2,则它们之间应该有一个加号)。然而,这将产生一个选择器“.class1.class2”,这不是您要寻找的-这将找到一个同时包含两个类的元素,而不是包含class1或class2的元素

因此,首先,您需要一个加号来修复语法错误。但是,您需要在类名之间使用逗号来选择正确的元素

var1=".class1";
var2=".class2"

// Select ".class1,.class2" (either class1 or class2)
$(var1 + ',' + var2).on('click', function(){
   //Do something        
});

另一种选择是使用jQuery对象作为变量。这将避免必须声明第三个变量,这是非常简单的,但是如果您真的想声明,有一种方法

这是假设您正试图将函数应用于任何具有任何一个类的元素,这不是您现有的代码示例所显示的(
$(“.class1.class2”)。在
上),但在我看来,这似乎是您实际要求的

var var1=$('.clickable');
var var2=$('.anotherClass');
添加(var2).on('click',function()){
log('button clicked!');
});

单击1

单击2
OP不均匀concatenating@Theraot-你说得对,那只是语法错误。变量很便宜
var1 var2
不是一个列表,它是一个语法错误。。。。即使它是一个列表,这个列表也是一个对象。也许你不想污染名称空间,在这种情况下,只需内联进行连接即可。为什么要在曾经有空格的地方使用逗号?好的一点。。。我现在已经读了好几遍了,但我仍然不知道他打算从这里开始。他从来没有明确地说他想要一个后代元素,我不知怎么读到他想要class1或class2。也许我错了。我将保留我的答案,以防万一,因为如果他需要空间,你已经提供了正确的答案。
var1=".class1";
var2=".class2"

// Select ".class1,.class2" (either class1 or class2)
$(var1 + ',' + var2).on('click', function(){
   //Do something        
});