2

我有以下内容:

$(function(){
   $table = $('#print_types table');
});

是否有可能做这样的事情:

$(function(){
   $($table + ' tr:last > td:first').after('something');
});

由于我正在缓存一个表格元素,我怎样才能像上面显示的那样操作表格?通常我会这样写:

$(function(){
   $('div#print_types table tr:last > td:first').after('something');
});

问题是我有一堆这样的语句,这就是我缓存表的原因。我试着做我所做的,但我得到了一个错误。我在这里错过了什么吗?

4

3 回答 3

2

只需使用.find

$table.find('tr:last > td:first')

这本质上是等价的。你不能使用$($table +...,因为$table's toString 不是你想要的选择器。

于 2013-01-05T16:42:12.363 回答
0

$table是一个 jQuery 对象。jQuery 选择器是一个字符串,不能连接字符串和对象。

find()改为使用

 $table.find(' tr:last > td:first').after('something');
于 2013-01-05T16:42:25.413 回答
0

您正在寻找的是上下文

$table = $('#print_types table');

$('tr:last > td:first', $table).after('something');

这与基本相同

$table.find('tr:last > td:first').after('something');

。寻找()

于 2013-01-05T16:43:44.787 回答