代码之家  ›  专栏  ›  技术社区  ›  Mona Coder

将自定义td添加到二维数组生成的表中面临的问题

  •  1
  • Mona Coder  · 技术社区  · 7 年前

    请你看一下这个演示,告诉我为什么不能附加全部内容,好吗? <td> 在一排?我要做的是附加一个自定义 <TD & GT; 以一种看起来像

    <tr>
        <td>Defult TD</td>
        <td>52</td>
        <td>16</td>
        <td>140</td>
    <tr>            
    
    <tr>
        <td>Defult TD</td>
        <td>54</td>
        <td>16</td>
        <td>145</td>
    <tr>
    

    但我得到的是

    <tr>
        <td>Defult TD</td>
    </tr>
    <tr>
        <td>52</td>
        <td>16</td>
        <td>140</td>
    <tr>            
    <tr>
        <td>Defult TD</td>
    </tr>
    <tr>
        <td>54</td>
        <td>16</td>
        <td>145</td>
    <tr>
    

    var sizes= [
       [52, 16, 140],
       [54, 16, 145]
    ];
    var table = $('#size-rows');
    var row, cell;
    for (var i = 0; i < sizes.length; i++) {
       row = $('<tr />');
       table.append(row);
       cell = $('<td>Default TD</td>')
       for (var j = 0; j < sizes[i].length; j++) {
          cell.append('<td>' + sizes[i][j] + '</td>');
          row.append(cell);
       }
    }
    td{
    border:1px solid #ddd;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    			
    	<table>
    		<tbody id="size-rows">	</tbody>
    	</table>
    2 回复  |  直到 7 年前
        1
  •  1
  •   DjaouadNM    7 年前

    你附加在 <td> ,而是附加 cell 下一个呢 <TD & GT; 致 row :

    var sizes = [
      [52, 16, 140],
      [54, 16, 145]
    ];
    var table = $('#size-rows');
    var row, cell;
    for (var i = 0; i < sizes.length; i++) {
      row = $('<tr />');
      table.append(row);
      cell = $('<td>Default TD</td>');
      row.append(cell);
      for (var j = 0; j < sizes[i].length; j++) {
        row.append('<td>' + sizes[i][j] + '</td>');
      }
    }
    td {
      border: 1px solid #ddd;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    
    <table>
      <tbody id="size-rows"> </tbody>
    </table>
        2
  •  0
  •   Bryan Dellinger    7 年前

    这里有一个使用map函数的解决方案。

    var sizes= [
       [52, 16, 140],
       [54, 16, 145]
    ];
    
    $('#size-rows').append(
      sizes.map(
        x => `<tr>
                <td>Default TD</td>${x.map(y => `<td>${y}</td>`)}
              </tr>`
              )
     );
    td{
    border:1px solid #ddd;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    			
    	<table>
    		<tbody id="size-rows">	</tbody>
    	</table>