使用jquery遍历表会给出未捕获的异常

时间:2013-08-29 20:09:01

标签: jquery html web

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

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

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

但是我收到以下错误:

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

我做错了什么?

2 个答案:

答案 0 :(得分:8)

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

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

这将选择tr的后代table元素。

你也可以这样做:

table.find('tr').each(function() { 

答案 1 :(得分: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/