JavaScript Table Manipulation

前端 未结 2 1593
北恋
北恋 2021-01-05 23:19

I have a table with one column and about ten rows. The first column has rows with text as row headers, \"header 1\", \"header 2\". The second column contains fields for th

相关标签:
2条回答
  • 2021-01-06 00:04

    Amusing exercise. Thanks to AviewAnew's hint, I could do it.

    function AddColumn(tableId)
    {
      var table = document.getElementById(tableId);
      if (table == undefined) return;
      var rowNb = table.rows.length;
      // Take care of header
      var bAddNames = (table.tHead.rows[0].cells.length % 2 == 1);
      var newcell = table.rows[0].cells[bAddNames ? 1 : 0].cloneNode(true);
      table.rows[0].appendChild(newcell);
      // Add the remainder of the column
      for(var i = 1; i < rowNb; i++)
      {
        newcell = table.rows[i].cells[0].cloneNode(bAddNames);
        table.rows[i].appendChild(newcell);
      }
    }
    

    with following HTML:

    <input type="button" id="BSO" value="Add" onclick="javascript:AddColumn('TSO')"/>
    <table border="1" id="TSO">
    <thead>
    <tr><th>Fields</th><th>Data</th></tr>
    </thead>
    <tbody>
    <tr><td>Doh</td><td>10</td></tr>
    <tr><td>Toh</td><td>20</td></tr>
    <tr><td>Foo</td><td>30</td></tr>
    <tr><td>Bar</td><td>42</td></tr>
    <tr><td>Ga</td><td>50</td></tr>
    <tr><td>Bu</td><td>666</td></tr>
    <tr><td>Zo</td><td>70</td></tr>
    <tr><td>Meu</td><td>80</td></tr>
    </tbody>
    </table>
    
    0 讨论(0)
  • 2021-01-06 00:15

    Something along the lines of

    function(table)
    {
      for(var i=0;i<table.rows.length;i++)
      {
        newcell = table.rows[i].cells[0].cloneNode(true);
        table.rows[i].appendChild(newcell);
      }
    }
    
    0 讨论(0)
提交回复
热议问题