【问题标题】:Generating a table in Javascript/jQuery [duplicate]在 Javascript/jQuery 中生成表格 [重复]
【发布时间】:2018-09-08 00:33:56
【问题描述】:

可能重复:
Creating tables dynamically in jQuery

我有两个数组,letters = [A,B,C,...]numbers = [1,2,3,...],并想生成一个 html 表,其中numbers 作为标题,letters 作为第一个条目(然后我可以用以下值填充它我有)。 一般的数组可以这样吗?

即如下图:

<table>
   <thead>
     <tr>
       <th></th>
       <th>1</th>
       <th>2</th>
       <th>3</th>
     </tr>
   </thead>
   <tbody>
     <tr id="A">
       <td>A</td>
       <td></td>
       <td></td>
       <td></td>
     </tr>
     <tr id="B">
       <td>B</td>
       <td></td>
       <td></td>
       <td></td>
     </tr>
     <tr id="C">
       <td>C</td>
       <td></td>
       <td></td>
       <td></td>
     </tr>
   </tbody>
 </table>​

【问题讨论】:

  • “这对于通用数组是否可行?” - 当然。到目前为止,您尝试过什么?
  • @DrColossos eeep,那个“重复”看起来很可怕。
  • @hayden 这与发布的代码无关;)而是答案中提出的想法......我不会随时使用作者发布的代码,但解决方案是可行的 IMO。跨度>
  • @DrColossos 这在问题和答案的简单性方面都更加清晰......虽然重复似乎共享相同的标题,但 IMO 内容完全是垃圾!嗯嗯。

标签: javascript jquery html-table


【解决方案1】:

好的,这是我想到的第一个方法:

var letters = ["A","B","C"],
    numbers = [1,2,3],
    $table = $("<table/>"),
    $body = $("<tbody/>").appendTo($table),
    $row = $("<tr><th></th></tr>");

$.each(numbers,function(i,val){
  $("<th/>").text(val).appendTo($row);
});
$("<thead/>").append($row).appendTo($table);

$.each(letters, function(i,val) {
  $row = $("<tr/>").attr("id",val).appendTo($body);
  $("<td/>").text(val).appendTo($row);
  for (var j = 0; j < numbers.length; j++)
    $row.append("<td/");
});

$table.appendTo("body");

演示:http://jsbin.com/ocomit/edit#javascript,html,live

是的,它可能更漂亮和/或更高效。这仅使用非常基本的 jQuery 方法 - 如果您不确定其中的任何一个,您知道 where to look...

【讨论】:

    【解决方案2】:

    请试试这个:

        var html = '';
        letters = [A,B,C];
        numbers = [1,2,3];
        html+= "<table><thead><tr><th></th>";
        for(i=0;i<letters.length;i++)
           html+="<th>"++letters[i]"</th>"; 
        html+= "</tr></thead>";
        html+= "<tbody>";
        for(j=0;j<numbers.length;j++)
        {
           html+="<tr id='"+numbers[j]+"'>";
           html+="<td>"+numbers[j]+"</td>";
           for(k=1;k<letters.length;k++)
               html+= "<td></td>";
           html+= "</tr>";
        }    
        html+= "</tbody>";
        html+= "</table>";
    

    请提醒“html”,你会得到你想要的输出。

    【讨论】:

    • 我会为使用纯 JavaScript 的解决方案 +1,除非你读错了他的问题。他想要标题中的数字和表格数据中的字母。
    猜你喜欢
    • 1970-01-01
    • 2016-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    • 1970-01-01
    • 2014-07-17
    • 1970-01-01
    相关资源
    最近更新 更多