2014-09-26 45 views
0

我有一个表像这样的药店把所有表中的行到数组的数组中的jQuery

Pharmacy Name | Pharmacy ID | Call | SMS | Email | P | Total 
------------------------------------------------------------ 
Test 1  | 123456  | 1 | 2 | 3 | 4 | 10 
------------------------------------------------------------ 
Test 2  | 123457  | 1 | 2 | 3 | 4 | 10 
----------------------------------------------------------- 

我想这个表导出到Excel工作表中的出站使用。当点击一个按钮并将这些数据传递给我的控制器时,我将如何去解决这个问题?

到目前为止,我有

$("tr").each(function() { 

    alert($("td").text()); 
}); 

但它给我所有的TDS。

我希望能够将每行的值存储到一个对象中。

+0

有几个插件HTML表格转换为csv,用你喜欢的搜索引擎找到他们 – charlietfl 2014-09-26 17:20:18

回答

1

我想你要找的是什么:

$('tr').map(function(i, tr) { 
    return $(tr).find('td').map(function(j, td) { 
    return $(td).text(); 
    }); 
}); 

编辑: 如何怪异。 Jquery似乎把它们弄平了。

var parentArr = []; 
$('tr').each(function() { 
    var children = []; 
    $(this).find('td').each(function(){ 
    children.push($(this).text()); 
    }); 
    parentArr.push(children); 
}); 

这绝对可以使用ecmascript 5或下划线/ lodash方法稍微优雅些。

+0

感谢这正是我期待的,我现在想创建一个数组数组。基本上我的输出上面会有一个2个对象的数组。我发布了我的下面 – user3562751 2014-09-26 17:46:56

+0

酷!非常感谢! – user3562751 2014-09-26 18:02:07

0

这里是我迄今为止

var items; 
    var data = []; 

    $('tr').map(function (i, tr) { 
     items = []; 
     return $(tr).find('td').map(function (j, td) { 

      items[j] = $(td).text(); 
      data[i].push(items[j]); 
      return $(td).text(); 
     }); 

     alert(data); 
    });