组合多个变量的正确方法是什么
我试过这个但是没有用。
varONE = "td.class1";
varTWO = "td.class2";
$('table').find(varONE,varTWO).css('background', 'red');
答案 0 :(得分:3)
你需要字符串本身的逗号,如
$('table').find('td.class1,td.class2').css('background', 'red');
或
varONE = "td.class1";
varTWO = "td.class2";
$('table').find(varONE+','+varTWO).css('background', 'red');
find()的唯一重载是selector
(字符串)或元素。但是,没有一个重载接受多个selectors
( stings )作为单独的参数
答案 1 :(得分:2)
嗯,实际上你需要以jquery的方式设置选择器,例如
varONE = $("td.class1");
varTWO = $("td.class2");
$('table').find(varONE,varTWO).css('background', 'red');
然后你的脚本就可以了。
您也可以使用连接字符串
varONE = "td.class1";
varTWO = "td.class2";
$('table').find(varONE + "," + varTWO).css('background', 'red');
它也会奏效。我建议您使用第一个解决方案,因为它更干净,但您可以选择。
答案 2 :(得分:1)
与连接字符串相同
$('table').find(varONE + ',' + varTWO).css('background', 'red');
答案 3 :(得分:1)
正如其他人所说,.find
方法不会使用多个选择器字符串。
如果您想以这种方式使用.find
,您可以创建自己的方法。
$.fn.argfind = function () {
return this.find(Array.prototype.join.call(arguments));
};
var one = "td.class1",
two = "td.class2";
$('table').argfind(one, two).css('background', 'red');
<table>
<tr>
<td class="class1">Example</td>
<td>Text</td>
</tr>
<tr>
<td>Example</td>
<td class="class2">Text</td>
</tr>
</table>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>