如何在同一个函数中使用多个变量

时间:2015-06-14 20:10:41

标签: jquery

组合多个变量的正确方法是什么

我试过这个但是没有用。

varONE = "td.class1";
varTWO = "td.class2";

$('table').find(varONE,varTWO).css('background', 'red');

4 个答案:

答案 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>

相关问题