Javascript“元素必须是表”

时间:2018-12-11 05:32:53

标签: javascript jquery html webpage tablesort

我正在使用此表排序器:https://github.com/tristen/tablesort

但是,当我查看此页面时,无法对列进行排序。 Chrome开发人员工具显示Uncaught Error: Element must be a table at new Tablesort (tablesort.js:6) at mytable.html:12

我假设此表:

<table id='mytable'> 

和此代码

document.getElementById('

引用相同的“ mytable”。我已经根据“ table-id”建立了该假设,如下所示:http://tristen.ca/tablesort/demo

<!DOCTYPE html>
<html>

<head>
 <script src='./src/tablesort.js'></script>
 <script src='./src/sorts/tablesort.number.js'></script>
 <script src='./src/sorts/tablesort.date.js'></script>
 <link href='./demo/style.css' rel='stylesheet'>
 <link href='tablesort.css' rel='stylesheet'>
</head>
<body>
 <script> new Tablesort(document.getElementById('mytable')); </script>
 <table id='mytable' class="sort" border = "1">
 <thead>
 <tr>

  <th>Name</th>
  <th data-sort-method='number'>Age</th>
  <!-- <th>Age</th> -->
 </tr>
 <tr>
  <td>Ramesh Raman</td>
  <td>22</td>
 </tr>
 <tr>
  <td>Shabbir Hussein</td>
  <td>32</td>
 </tr>
 </thead>
 </table>

</body>
</html>

1 个答案:

答案 0 :(得分:1)

这是行不通的,因为script标记是在正文之前加载的。将代码放在window.onload中:

window.onload = function() {
    new Tablesort(document.getElementById('mytable'));
}

您也可以将脚本标签放在正文的底部,因为它将最后加载,因此可以找到表格。