我正在尝试突出显示在行中的表格单元格.
var $tr = $('tr:eq(' + row + ')');
$($tr:nth-child(col)).addClass('highlight');
Run Code Online (Sandbox Code Playgroud)
var $tr = $('tr:eq(' + row + ')');
$tr.find(':nth-child(' + col + ')').addClass('highlight');
Run Code Online (Sandbox Code Playgroud)
或者,如果您不需要引用$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元素的引用,甚至是零!