Javascript 页面加载时的表排序

Javascript 页面加载时的表排序,javascript,html,Javascript,Html,我不明白为什么这个代码在我的服务器上不起作用。我在一些代码游戏场上测试了它,没有问题 <!DOCTYPE html> <html> <head> <link href="design.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jque

我不明白为什么这个代码在我的服务器上不起作用。我在一些代码游戏场上测试了它,没有问题

    <!DOCTYPE html>
<html>
<head>
    <link href="design.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script type="text/javascript">
var mylist = $('#myTable');
var listitems = mylist.find('tr');
listitems.sort(function(a, b) {
   return $(a).text().toUpperCase().localeCompare($(b).text().toUpperCase());
})
$.each(listitems, function(idx, itm) { mylist.append(itm); });
    </script>
</head>
<body>
<table id="myTable">
<tr>
<td>B</td>
<td>12/01/2016</td>
</tr>
<tr>
<td>A</td>
<td>12/01/2016</td>
</tr>
</table>
</body>
</html>

var mylist=$(“#myTable”);
var listitems=mylist.find('tr');
排序(函数(a,b){
返回$(a.text().toUpperCase().localeCompare($(b.text().toUpperCase());
})
$.each(列表项,函数(idx,itm){mylist.append(itm);});
B
12/01/2016
A.
12/01/2016

将脚本移到关闭标记之前,或使用事件处理程序


问题是,当您的代码在操场上执行时,它会在HTML之后启动,但当您使用自己的服务器时,您当前的代码会在页面初始化之前启动。

因为您试图在表存在之前读取它。这就像是在三明治做出来之前把它吃掉。您需要等到document.ready、window.onload或呈现元素之后。像JSFiddle这样的站点默认JavaScript代码在加载时运行,而不是像您这样在头部运行。哦,对了。如果我通过文件加载脚本呢。把它放在哪里?@hristanyordanov,同样的。如果您使用的是
$(document).ready()
,那么这并不重要,但如果您不使用,只需将其放在结束标记之前即可