如何在选择器中使用jQuery变量

Phi*_*enn 2 jquery

我正在尝试突出显示在行中的表格单元格.

var $tr = $('tr:eq(' + row + ')');
$($tr:nth-child(col)).addClass('highlight');
Run Code Online (Sandbox Code Playgroud)

jen*_*ram 6

var $tr = $('tr:eq(' + row + ')');
$tr.find(':nth-child(' + col + ')').addClass('highlight');
Run Code Online (Sandbox Code Playgroud)

.find().见演示.

或者,如果您不需要引用$tr,可以通过一个选择器完成所有操作:

$('tr:eq(' + row + ') :nth-child(' + col + ')').addClass('highlight');
Run Code Online (Sandbox Code Playgroud)

(演示)


至于你的问题

如何在选择器中使用jQuery变量

(所有)jQuery遍历/选择器方法的结果是类型jQuery.这使得可以进行高级链接.此外,在这种类型上定义了jQuery方法.这意味着你需要进行过滤等生成的对象.因此,以下内容无效(:不是JavaScript运算符,nth-child()(可能)未定义为JavaScript函数):

$($tr:nth-child(1)).addClass('highlight');
Run Code Online (Sandbox Code Playgroud)

但可以改写为:

$tr.find(':nth-child(1)').addClass('highlight');
Run Code Online (Sandbox Code Playgroud)

这里我们将选择器:nth-child(1)应用于jQuery分配给的对象$tr.这个对象可以保存对任意数量的DOM元素的引用,甚至是零!