如何使用多个变量来创建多个 jquery 选择器?
How can multiple variables be used to create multiple jquery selectors?
当我将多个变量转换为多个选择器时,以下代码无法执行。
$('.Btn').on('click', function () {
var outer = $(this).data('test');
var inner = $(outer).children('.Inner');
$(outer + ',' + inner).addClass('Success');
});
在上面的代码中:
这是成功的
$(outer).addClass('Success');
这是成功的
$(inner).addClass('Success');
这不是
$(outer + ',' + inner).addClass('Success');
问题
如何使用多个变量来创建多个 jquery 选择器?
后一种方法只有在两个变量都包含字符串时才有效。在您的情况下,您需要使用 add()
将变量中保存的对象连接在一起:
$(outer).add(inner).addClass('Success');
在你的脚本中,outer 是一个字符串,而 inner 是一个 jQuery 对象。您不能将这些值相互联系起来。当然,您可以将内部 class 名称作为字符串获取,但这有点棘手,而且并不总是有效...
如果您必须使用 +','+ 语法,这里是解决方案,但正如我提到的,它真的很老套:
$('.Btn').on('click', function () {
var outer = $(this).data('test');
var inner = '.'+$(outer).children('.Inner').attr('class').split(' ')[0];
$(outer+', '+inner).addClass('Success');
});
如果您使用 add() 或 find() 之类的方法处理内部 div,这是一个更好的解决方案。
当我将多个变量转换为多个选择器时,以下代码无法执行。
$('.Btn').on('click', function () {
var outer = $(this).data('test');
var inner = $(outer).children('.Inner');
$(outer + ',' + inner).addClass('Success');
});
在上面的代码中:
这是成功的
$(outer).addClass('Success');
这是成功的
$(inner).addClass('Success');
这不是
$(outer + ',' + inner).addClass('Success');
问题
如何使用多个变量来创建多个 jquery 选择器?
后一种方法只有在两个变量都包含字符串时才有效。在您的情况下,您需要使用 add()
将变量中保存的对象连接在一起:
$(outer).add(inner).addClass('Success');
在你的脚本中,outer 是一个字符串,而 inner 是一个 jQuery 对象。您不能将这些值相互联系起来。当然,您可以将内部 class 名称作为字符串获取,但这有点棘手,而且并不总是有效...
如果您必须使用 +','+ 语法,这里是解决方案,但正如我提到的,它真的很老套:
$('.Btn').on('click', function () {
var outer = $(this).data('test');
var inner = '.'+$(outer).children('.Inner').attr('class').split(' ')[0];
$(outer+', '+inner).addClass('Success');
});
如果您使用 add() 或 find() 之类的方法处理内部 div,这是一个更好的解决方案。