【问题标题】:Sort HTML table in ascending and descending order on select box change在选择框更改时按升序和降序对 HTML 表格进行排序
【发布时间】:2013-12-31 22:49:16
【问题描述】:

我想在选择框更改时按升序和降序对表格中的数据进行排序。如果用户从选择框选项中选择升序,则数据应按升序排序,降序也是如此。我知道这很简单,但我是一个新手,所以请帮我做这件事。这是我到目前为止所做的。

FIDDLE

function createClickHandler(column, isAscending){
    return function(e){
      table.find('td')
        .filter(function(){
          return $(this).index() === column;
        })
        .sort(function(a, b){
          var order = $.text([a]) > $.text([b]);
          return isAscending ? order : !order;
        }, function(){
          // parentNode is the element we want to move
          return this.parentNode; 
        })
      ;
    };
  }

提前致谢

【问题讨论】:

  • 你做了什么尝试?您使用的是什么 jquery 版本?
  • 我使用的是 jQuery v1.9.1。我已设法在链接上对表格进行排序,但无法在选择框更改时进行排序。
  • 这是我到目前为止所做的。我想在选择框更改时对表格进行排序,而不是单击链接。 jsfiddle.net/andyshady/Lm7ra
  • 您无法放入链接并忽略它是有原因的。请在您的问题中提供一个最小的代码示例并链接到演示。

标签: javascript jquery html tablesorter


【解决方案1】:

有各种插件可以使用 jQuery 执行此操作。最著名的是 jQuery tablesorter: 试试这个,它对我有用 http://tablesorter.com/docs/#Demo

$("#myTable").tablesorter(); 在选择框的更改事件上使用它

在小提琴上检查这个:http://bit.ly/1cEApUh

排序 = [[0,0]];

这是定义这些属性的数组

在第一个字段中,您需要添加列索引。 在我的情况下,列索引为 0。如果将其更改为 1,它将根据年份排序

第二个字段包含 0 和 1,0 表示升序,1 表示升序

让我们举一个排序make column的例子

if($(this).val() === "升序") 排序 = [[2,0]]; 别的 排序 = [[2,1]];

【讨论】:

  • 是的,我试过了。但我想在选择框更改时对表格进行排序,而不是单击表格标题。这是我到目前为止所做的。 jsfiddle.net/andyshady/Lm7ra
  • 您先生解决了我的主要问题。非常感谢。有一个小问题。当我在我的网站上实现这一点时,我在排序数据时遇到了一些违规行为。请检查以下链接并查看年份和品牌列,因为它们没有被正确排序。 codyjames.webimpakt-green.com/product-category/… 感谢您的宝贵时间 :)
  • 排序 = [[0,0]];这是定义这些属性的数组 在第一个字段中,您需要添加列索引。在我的情况下,列索引为0。如果将其更改为1,它将根据年份排序第二个字段包含0和1,0表示升序,1表示升序让我们举个例子来排序make column if( $(this).val() === "升序") 排序 = [[2,0]];否则排序 = [[2,1]];
猜你喜欢
  • 2016-10-18
  • 1970-01-01
  • 2013-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-05
  • 1970-01-01
相关资源
最近更新 更多