1

当用户单击表格中的单元格时,我想使用以下内容遍历表格的行:

var table = $(this).closest('table');

$(table+" tr").each(function(){
        console.log($(this).text());
    });

但是我收到以下错误:

  uncaught exception: Syntax error, unrecognized expression: [object Object]

我究竟做错了什么?

4

2 回答 2

8

table是一个对象,而不是一个字符串。尝试这个:

$('tr', table).each(function() {

这将选择tr作为table.

你也可以这样做:

table.find('tr').each(function() { 
于 2013-08-29T20:10:12.610 回答
1

table是一个 jQuery 集合。它的 toString 方法返回[object Object]. 当您将字符串连接到对象时,它使用其 toString 来构建结果字符串。

“[object Object] tr”不是有效的选择器表达式。.find您可以使用或提供集合作为 jQuery 方法的第二个参数(选择器的上下文)来选择 jQuery 集合的后代。

请注意,.each迭代不一定需要。这取决于你需要做什么。

console.log($(this).closest("table").find("tr").text());

http://jsfiddle.net/3MDgy/1/

于 2013-08-29T20:14:23.953 回答