【问题标题】:Assign content to a specific th-element将内容分配给特定的 th 元素
【发布时间】:2020-03-18 09:16:21
【问题描述】:

有没有办法将内容作为 td 元素传递给特定的 th 元素? 我有一个动态表格,需要在正确的表格标题下分配内容。

我已经为表格的行添加了分页。所有的 td-都分配给“Ref.”(见附图)。但我需要在“分数”下分配{{score}},在“标题”下分配黑色部分

<table class="table table-hover">
    <thead id="header">
        <tr id="tableHead">
            <th>Ref.</th>
            <th>Score</th>
            <th>Title</th>
        </tr>
    </thead>

    <tbody style="width: 100%">
        {% for i in range (0,numofresults) %}
        <tr id="cardmb3n{{i}}">
            <td id="ref{{i}}"> </td>
            <td id="score{{i}}"> </td>
            <td>
                <div>
                    <a id="header{{i}}" href="" </a> 
                    <br>
                    <a id="hyperlink{{i}}" href="" target=_blank </a> 
                </div> 
            </td> 
        </tr> 
    </tbody> 
    {% endfor %}                            
</table>

【问题讨论】:

    标签: javascript html html-table bootstrap-4


    【解决方案1】:

    我希望你正在寻找这个。

    我假设您拥有动态 JSON 格式的数据。

    var data = [
      {
        "score": 86,
        "ref": "desc 021",
        "title": "021"
      },
      {
        "score": 72,
        "title": "022",
        "ref": "desc 022"
      }
    ];
    
    
    function addTable() {
    
      var myTableDiv = document.getElementById("myTable");
      myTableDiv.innerHTML = "";
    
      var table = document.createElement('TABLE');
      table.border = '1';
    
      var tableHeader = document.createElement('THEAD');
      table.appendChild(tableHeader);
    
      var tableBody = document.createElement('TBODY');
      table.appendChild(tableBody);
    
      var n = data.length;
      var m = 0;
      var thKeys;
      if (n > 0) {
        thKeys = Object.keys(data[0]);
        m = thKeys.length;
      }
    
      var tr = document.createElement('TR');
      tableBody.appendChild(tr);
    
      for (var j = 0; j < m; j++) {
        var td = document.createElement('TD');
        td.width = '75';
        td.innerText = thKeys[j];
        tr.appendChild(td);
      }
    
    
      for (var i = 0; i < n; i++) {
        tr = document.createElement('TR');
        tableBody.appendChild(tr);
    
        for (var j = 0; j < m; j++) {
          var td = document.createElement('TD');
          td.width = '75';
          td.innerText = data[i][thKeys[j]];
          tr.appendChild(td);
        }
      }
    
      myTableDiv.appendChild(table);
    
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    
    <button onclick="addTable()">add table</button>
    
    <div id="myTable"></div>

    如果你给我确切的数据,我会为它做出改变。

    【讨论】:

    • 是的,数据是 JSON 格式。 cloumns 的数量不是问题,它是 3 的固定数字。然而,由于分页,td-elments 都分配给“Ref”。元素。我附上了我的表格的屏幕截图。
    • 我做了一些改动。立即尝试。
    猜你喜欢
    • 2010-12-13
    • 1970-01-01
    • 2014-09-23
    • 1970-01-01
    • 2020-11-08
    • 2016-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多