HTML表数据通过jQuery分成数组

问题描述 投票:8回答:9

我想从类似HTML的表格中提取数据

<table>
    <tr>
        <th> Header1 </th>
        <th> Header2 </th>
        <th> Header3 </th>
    </tr>
    <tr>
        <td> Value 1,1 </td>
        <td> Value 2,1 </td>
        <td> Value 3,1 </td>
    </tr>

    ... rows ...

</table>

并获取数组:

  • 标头的数组
  • 列值的2d数组(或每列的数组)

    如何使用jQuery?

    我不在乎对其进行序列化,也不必将其放入JSON对象,因为我想使用它来呈现图表。


    相关一般设计问题:

    此刻我有类似的东西

    1. ajax query returns html table
    2. use jQuery to get values from html table
    3. render chart
    

    从ajax查询中返回一个JSON对象,然后从那里呈现一个表格和一个图表更有意义吗?

  • javascript jquery highcharts
    9个回答
    14
    投票
    $(function() { var headers = $("span",$("#tblVersions")).map(function() { return this.innerHTML; }).get(); var rows = $("tbody tr",$("#tblVersions")).map(function() { return [$("td:eq(0) input:checkbox:checked",this).map(function() { return this.innerHTML; }).get()]; }).get(); alert(rows); });

    9
    投票
    var header = Array(); $("table tr th").each(function(i, v){ header[i] = $(this).text(); }) alert(header); var data = Array(); $("table tr").each(function(i, v){ data[i] = Array(); $(this).children('td').each(function(ii, vv){ data[i][ii] = $(this).text(); }); }) alert(data);

    3
    投票
    var headers = jQuery('th').map(function(i,e) { return e.innerHTML;}).get(); var datas = [] jQuery.each(jQuery('tr:gt(0)'), function(i,e ) { datas.push(jQuery('td', e).map(function(i,e) { return e.innerHTML; }).get() ); });

    1
    投票
    var thArray = new Array(); var contentArray = new Array(); $('th').each(function(index) { thArray[index] = $(this).html(); }) $('tr').each(function(indexParent) { contentArray['row'+indexParent] = new Array(); $(this).children().each(function(indexChild) { contentArray['row'+indexParent]['col'+indexChild] = $(this).html(); }); });

    这将为您提供两个数组,thArray是标题的数组,contentArray是包含行和列的2d数组:contentArray['row1']['col0']返回“值1,1”]]

    实际上,contentArray也包含th ...引用为'row0'

    1
    投票
    从ajax查询返回一个JSON对象,然后从那里呈现一个表和一个图表更有意义吗?

    1
    投票

    1
    投票

    0
    投票

    0
    投票
    © www.soinside.com 2019 - 2024. All rights reserved.