gpt4 book ai didi

javascript - Sorttable.js(Javascript 表排序)在 javascript 中创建表时不起作用

转载 作者:搜寻专家 更新时间:2023-10-31 08:25:28 25 4
gpt4 key购买 nike

我正在尝试使用 sorttable.js单击列标题时使 HTML 表格可排序的包。当表格在 HTML 中静态声明时,我可以让它正常工作:

fiddle

<table class="sortable" style="width:100%">
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Points</th>
</tr>
<tr>
<td>Eve</td>
<td>Jackson</td>
<td>94</td>
</tr>
<tr>
<td>Joe</td>
<td>Smith</td>
<td>50</td>
</tr>
<tr>
<td>Abraham</td>
<td>Jones</td>
<td>4</td>
</tr>
</table>

但是,当我使用 javascript 创建表时,排序功能不再存在,并且我在控制台上收到错误消息:

fiddle

  tbl_array = new Array()
tbl_array = [["Firstname","Lastname","Points"], ["Eve","Jackson","94"], ["Joe","Smith","50"], ["Abraham","Jones","4"]]
var body = document.body,
tbl = document.getElementById('summaryTable');

// clear all rows on the table
while(tbl.rows.length > 0){
tbl.deleteRow(0)
}
tbl.style.width = '100px';
tbl.style.border = '1px solid black';

numRows = tbl_array.length
numCols = tbl_array[0].length

// insert each 2D array entry into a table cell
for(var i = 0; i < numRows; i++){

// insert header
if (i == 0){
var header = tbl.createTBody();
var row = header.insertRow();
for (var j=0; j < numCols; ++j){
var cell = document.createElement('th')
cell.appendChild(document.createTextNode(tbl_array[i][j]));
cell.style.border='1px solid black';
cell.style.fontWeight = "bold";
row.appendChild(cell)
}
}

else{
var tr = tbl.insertRow();
for(var j = 0; j < numCols; j++){
var td = tr.insertCell();
td.appendChild(document.createTextNode(tbl_array[i][j]));
td.style.border = '1px solid black';
}
}
}
console.log("tbl", tbl)

我唯一能想到的是我没有用 javascript 正确格式化表格,但是当我将两个表格打印到控制台并检查它们的结构时,它们基本相同:

<table ...>
<tbody>
<tr ...>
<th>..</th>
<th>..</th>
</tr>
<tr>
<td>..</td>
<td>..</td>
</tr>
</tbody>
</table>

我使用 javascript 创建表格的方式有误吗?任何帮助,将不胜感激。谢谢!

最佳答案

sorttable.js 假定所有表格在初始化时都已在 HTML 中;您的表是动态生成的,因此您必须手动引导 makeSortable 方法。

在您的 console.log 之前,尝试插入:

sorttable.makeSortable(document.getElementById('summaryTable'));

关于javascript - Sorttable.js(Javascript 表排序)在 javascript 中创建表时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38085075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com