0

我正在从 HTML 表中提取数据。我已将标题和 tr 数据分成 2 个数组,假设我有表:

<table cellpadding="0" cellspacing="0" border="0" class="display dTable messageinbox">
    <thead>
        <tr>
            <th>ID</th>
            <th align="left">Name</th>
            <th align="left">Message</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td align="center" style="vertical-align:middle">1</td>
            <td align="left" style="vertical-align:middle">Ashfaq </td>
            <td align="left" style="vertical-align:middle">hi </td>
        </tr>
        <tr>
            <td align="center" style="vertical-align:middle">2</td>
            <td align="left" style="vertical-align:middle">Adam </td>
            <td align="left" style="vertical-align:middle">test </td>
        </tr>
    </tbody>
</table>

这是我的代码:

$("#ExportOption").click(function()
    {
        var $table = $("table:first"),
        $headerCells = $table.find("thead th"),
        $rows = $table.find("tbody tr");
        var headers = [],
            rows = [];

        $headerCells.each(function(k,v) 
        {
            headers[headers.length] = $(this).text().replace(',', '');
        });

        $rows.each(function(row,v) 
        {
            $(this).find("td").each(function(cell,v) 
            {
                if(typeof rows[cell] === 'undefined') rows[cell] = [];
                //alert($(this).parent().find("tr"));
                rows[row][cell] = $(this).text().replace(',', '');
            });
        });
        alert(headers);
        alert(rows);
    });

这给了我这样的输出

    Heading :
    ID    Name    Message

    Rows :
    1     Ashfaq  hi      2  Adam test

我想要的输出是在每个tr数据之间添加一个行分隔符,例如

1  Ashfaq hi \Separator 2 Adam test
4

1 回答 1

0
$rows.each(function(row, v) {
    $(this).find("td").each(function(cell, v) {
        if (typeof rows[cell] === 'undefined') rows[cell] = [];
        //alert($(this).parent().find("tr"));
        rows[row][cell] = $(this).text().replace(',', '');
    });
    rows[row] += "/";
});

http://jsfiddle.net/BNN6Z/7/

于 2012-12-07T08:24:34.047 回答