Tag: 排序

如何在jQuery中使用自定义排序顺序对列表项进行排序

我的问题与我在Stack Overflow上发现的其他一些问题非常相似,但并不完全相同。 我想根据每个项目中包含的跨度内容对列表项进行排序 – 但是使用我可以定义的排序顺序。 这是示例列表项的HTML: John Doe Sophomore 我想根据“年”跨度的内容进行排序,但是按时间顺序而不是按字母顺序排序。 显然,订单必须是: 新生 二年级 初级 前辈 我怎样才能做到这一点? 仅供参考,我使用以下jQuery代码(完美地工作)按姓氏按字母顺序排序: function sortByLastName(){ var myList = $(‘#foo ul’); var listItems = myList.children(‘li’).get(); listItems.sort(function(a,b){ var compA = $(a).find(‘.lname’).text().toUpperCase(); var compB = $(b).find(‘.lname’).text().toUpperCase(); return (compA compB) ? 1 : 0; }); $(myList).append(listItems); };

jquery tablesorter ajax表只排序一个方向

我有一个表,我通过jQuery加载命令加载。 在load函数的回调中,我启动了tablesorter插件。 由于某种原因,该表仅对降序进行排序而不是升序。 甚至更奇怪,如果我按住shift,它将在asc和desc之间正确切换? 知道这里发生了什么吗? table.php hi a b c jQuery的 $(“#myDiv”).load(“table.php”, function() { $(“#xyz”).tablesorter(); }); 如果我不通过ajax加载表,那么tablesorter按预期运行。

Jquery排序多个Tbody

我有这样一张桌子: Department Quantity Data 100 DTP 20 VTP 30 RTP 50 Testing 100 QTP 20 ATP 30 CTP 50 当我点击department标题时, tr内部的数据和测试应该被排序。 但数据和测试TH应该保持不变。 我不想使用任何jQuery插件。 请共享代码来完成此任务。

自定义sorttype函数在jqGrid中无法正常工作

我的jqGrid包含一个特殊列,其值由另一个值生成,如“持续时间跨度”列,其实际值以秒为单位,如3690秒,我应该将其转换为格式化字符串“Hour:Minute:Second”,因此是’1:1:30’。 现在,我希望它在排序方面运行良好,所以我编写了一个自定义函数来处理这个问题: 1,以下代码片段是列定义: { name : ‘time’, index : ‘time’, align: ‘center’, width : ‘12%’, sorttype : sortTimeFuc } 2,以下代码片段是sort函数: var sortTimeFuc = (function(cell) { var a = cell.split(‘:’); var value = parseInt(a[2]) + parseInt(a[1]) * 60 + parseInt(a[0]) * 3600; return value; }); 但它的工作原理不正确如下: 有人可以帮我吗? 非常感谢。

jQuery:$ .getJSON对Chrome / IE上的数据进行排序?

我正在使用Ajax传递一个关联数组(id => val)并使用jQuery的$ .getJSON接收它,它正确读取数据并准备好对象。 但是,排序问题非常烦人。 看来,在Chrome和IE上,数据按关联数组的id部分排序。 因此,如果数组应该是(5 =>’xxx’,3 =>’fff’),它实际上变为(3 =>​​’fff’,5 =>’xxx’)。 在FireFox上,它按预期工作,即未排序。 有任何想法吗?

如何在javascript中按时间(格式:下午5:40)排序以与DataTables一起使用?

我有一个我正在使用的数据表有5列( http://datatables.net/ ) 列是 日期格式:1月5日 时间格式:上午10:31(xx:xx XX) 第3,4,5列并不重要,它们只是我不关心排序的数据,只要1和2是正确的。 我想按Date FIRST排序(最近一次),然后我想按时间排序(最近一次排在最前面)。 因此1月5日下午4:58应该在凌晨4:58之前显示,显然所有其他数字也需要在其他所有时间都能正常工作。 格式始终相同,即:上午12:34,下午4:15,上午12:00等。 对于约会,这已经完美无缺。 数据表中只有2天的数据最大值,所以即使它翻到本月的第1天,它仍会显示在顶部,这很好。 我查看了文档,我很困惑如何为我的时间列做正确的排序。 这是我的代码: oTable = $(‘#posts’).dataTable({ “bSort”: true, “aaSorting”: [ [0,’desc’], [1,’asc’] ], “aoColumns”: [ null, { “sType”: ‘time-sort’ }, null, null, null ] }); 这是从这里: http : //datatables.net/release-datatables/examples/basic_init/multi_col_sort.html 我现在采取它我必须使用“aoColumns”的sType属性为时间构建某种自定义排序算法(您可以在上面的示例链接中看到它区分大小写的情况),我不知道如何执行此操作:(我甚至不确定我到目前为止是否做到了这一点。它似乎对两列很好,但现在我需要做到这一点,所以时间是正确的… 这是我认为我需要的代码的另一部分。 (再一次,这是来自这个例子)。 我99%确定这是我需要在我的自定义时间排序代码中进行升序和降序的地方。 /* Define two custom functions (asc and desc) for […]

如何使用Ember突出显示当前选定的列?

Ember内置支持在控制器中对数组进行排序,这使得在数据排序顺序更改时更新模板非常方便。 然而,我的问题是如何方便地(1)突出显示当前选择的数据排序列和(2)排序顺序(升序或降序)。 通过突出显示,我的意思是添加向上或向下箭头,或类似的东西。 目前,我正在使用jQuery在视图层中摆弄这个,但我觉得必须有一个更简单的解决方案,因为Ember处理这样的琐碎问题的优雅。

将浮点数排序为自然数

我有一个逗号分隔的浮点数。 var example = “1.1, 1.10, 1.2, 3.1, 3.14, 3.5”; 我想对这个浮点数进行排序,比如 “1.1, 1.2, 1.10, 3.1, 3.5, 3.14” 实际上在我的情况下,小数点后面的数字将被视为自然数,因此1.2将被视为’2’而1.10将被视为’10’,这就是为什么1.2将首先比1.10更先。 对我来说,建议或例子都很棒,谢谢。 实际上我想先根据小数点前的数字对数组进行排序:)然后运行上面的逻辑。

根据JSON Response中的时间戳值对数组进行排序

我在我的json响应中有时间戳值,并且能够正确地解析该值。 每个图像都有自己的时间戳值,我需要在增加的时间戳值中显示它。 这意味着应该首先在我的应用程序中加载最后更新的图像。 时间戳在JSON响应中采用以下格式: Brand1{ “FileName”: “520120427043622011.jpg”, “UpdateTimeStamp”: “Jun 10, 2013 8:31:23 AM” } Brand2{ “FileName”: “Kung_Fu_Fingers.jpg”, “UpdateTimeStamp”: “Jun 5, 2013 6:51:12 AM” } Brand3{ “FileName”: “google_logo1.jpg”, “UpdateTimeStamp”: “Jun 10, 2013 8:31:23 AM” } 任何人都可以指导我使用Javascript或jQuery函数根据时间戳值对上述三个品牌图像项进行排序。 我在分割dat值后使用了sort函数,但它只按字母顺序对月份进行排序。 请帮我找到解决方案。 提前致谢。

Javascript数组排序是异步的吗?

Javascript Array.sort函数是否异步? 我不这么认为,但是当我运行以下代码时,它确实似乎是: $(‘#alphabetical-order’).data(‘sort-column’, ‘FileAlpha’); $(‘#first-numeric-order’).data(‘sort-column’, ‘FileFirstNumeric’); $(‘#last-numeric-order’).data(‘sort-column’, ‘FileLastNumeric’); $(‘#alphabetical-order, #first-numeric-order, #last-numeric-order’).each(function() { var $this = $(this); $this.data(‘compare-function’, function(row1, row2) { console.log(‘column = ‘ + $this.data(‘sort-column’)); // >> DEBUG 1 compareRowsBasedOnColumn(row1, row2, $this.data(‘sort-column’)); }); }).click(function() { var $this = $(this); var $content = $(‘table.sheetlist-content tr.content’); $content.sort($this.data(‘compare-function’)); console.log(‘$content.sort complete’); // >> DEBUG 2 $table_body = $(‘table.sheetlist-content […]