使用jQuery表格排序器对表列进行排序

时间:2010-06-27 13:37:14

标签: jquery tablesorter

我想知道是否有办法使用表格分类器对列进行排序 所以我可以根据一些ID或任何东西自己安排列。
alt text

所以在这里,例如,如果我想对表进行排序,以便Apple列为 首先,我该怎么做?

4 个答案:

答案 0 :(得分:1)

演示: http://jsfiddle.net/fKMqD/

代码:

var rows = $('tr');

rows.eq(0).find('td').sort(function(a, b){

    return $.text([a]) > $.text([b]) ? 1: -1;

}).each(function(newIndex){

    var originalIndex = $(this).index();

    rows.each(function(){
        var td = $(this).find('td');
        if (originalIndex !== newIndex)
            td.eq(originalIndex).insertAfter(td.eq(newIndex));
    });

});

无需插件。

答案 1 :(得分:1)

有一个名为datatable的jquery插件,它像大多数插件一样非常容易使用,可以随时执行您想要的所有工作。

http://www.datatables.net/

检查出来。

答案 2 :(得分:0)

答案 3 :(得分:0)

我得到了它的工作

<html>
  <head>
    <script type="text/javascript" src="http://www.google.com/jsapi"></script>
    <script type="text/javascript">
      google.load("jquery", "1");
    </script>
    <script>
      $(function() {
        // Figure out the new column order.
        var isWas = {};
        $("tr").eq(0).find("td").each(function(index) {
          $(this).attr("was", index);
        }).sort(function(left, right) {
          // Change this line to change how you sort.
          return $(left).text() > $(right).text() ? 1 : -1;
        }).each(function(index) {
          isWas[index] = $(this).attr("was");
        });

        // Reorder the columns in every row.
        $("tr").each(function() {
          var tr = $(this);
          var tds = tr.find("td");
          var newOrder = [];
          for (var is = 0; is < tds.length; is++) {
            newOrder.push(tds.eq(isWas[is]));
          }
          for (var is = 0; is < tds.length; is++) {
            tr.append(newOrder[is]);
          }
        });
      });
    </script>
  </head>
  <body>
    <table>
      <tr><td>Potato</td><td>Tomato</td><td>Apple</td></tr>
      <tr><td>20g</td><td>10gr</td><td>40gr</td></tr>
    </table>
  </body>
</html>