将表中的所有行放入jquery中的数组数组中

时间:2014-09-26 17:15:55

标签: jquery arrays

我有一个类似于药店出境使用的表格

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。

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

2 个答案:

答案 0 :(得分: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方法肯定可以更优雅地解决这个问题。

答案 1 :(得分: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);
    });