gpt4 book ai didi

jquery - .sort 在 IE (IE 9) 中不起作用

转载 作者:行者123 更新时间:2023-12-01 07:51:16 25 4
gpt4 key购买 nike

我已经为此工作了几天。我有一个在表中动态创建行的脚本。最终输出如下所示:

<table id="event-list">
<tr id="event0" value="04/04/2000">
<td>My Third Event</td>
<td>Apr 4</td>
<td>Omaha, NE</td>
<td></td>
</tr>
<tr id="event4" value="04/24/2000">
<td>USA Triathlon National Championships Collegiate Club</td>
<td>Apr 24</td><td>Clemson, SC</td>
<td></td>
</tr>
<tr id="event2" value="07/17/2000">
<td>My Second Event</td><td>Jul 17</td>
<td>Omaha, NE</td>
<td></td>
</tr>
<tr id="event3" value="08/17/2000">
<td>My Second Event</td>
<td>Aug 17</td>
<td>Ames, IA</td>
<td></td>
</tr>
<tr id="event1" value="10/26/2000">
<td>ZTA 5K For Breast Cancer Awareness</td>
<td>Oct 26</td>
<td>Omaha, NE</td>
<td></td>
</tr>
</table>

我使用以下脚本按日期对每一行进行排序:

$('#event-list tr').sort(function(a,b) {
return new Date($(a).attr('value')) < new Date($(b).attr('value'));

}).each(function(){
$('#event-list').prepend(this);

});

它在 Chrome 和 Firefox 中工作正常,但在 IE 中 - 列表只是以相反的顺序反转。

对原因或解决方法有什么想法吗?提前致谢。

最佳答案

您的排序函数不正确。排序函数不能只返回一个 bool 值来判断一个元素是否大于另一个元素。它必须处理所有三种情况:小于、大于和等于。

  • 如果 a < b,则返回负值
  • 如果 a > b,则返回正值
  • 如果 a == b,则返回零

可以很容易地更改排序函数来实现此目的。而不是将两个值与 < 进行比较运算符,只需将它们相减即可:

   return new Date($(a).attr('value')) - new Date($(b).attr('value'));

如果这给你的顺序与你想要的相反,请将其颠倒过来:

   return new Date($(b).attr('value')) - new Date($(a).attr('value'));

关于jquery - .sort 在 IE (IE 9) 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29886737/

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