首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery表排序功能说明

jQuery表排序功能说明
EN

Stack Overflow用户
提问于 2009-09-28 21:31:41
回答 1查看 506关注 0票数 1

如果可能的话,我需要一些关于以下jQuery代码的帮助.

代码语言:javascript
复制
 $(document).ready(function() {
  $('table.sortable').each(function() {
   var $table = $(this);
    $('th', $table).each(function(column) { // #A
     var $header = $(this); 
      $header.click(function() {
       var rows = $table.find('tbody > tr').get();
        rows.sort(function(a, b) { // #B
         var keyA = $(a).children('td').eq(column).text().toUpperCase(); //#C
         var keyB = $(b).children('td').eq(column).text().toUpperCase();
          if(keyA < keyB) return -1;
          if(keyA > keyB) return 1;
          return 0;
          });
          $.each(rows, function(index, row) { //#D
           $table.children('tbody').append(row);
          });
        });
     });
   });
 });

对于我添加的评论(从A到D),谁能给我解释一下:

#A -意味着这个函数的结束/结束.也就是说,功能在哪里结束?我在天真地寻找一个结束的大括号,否则通过阅读代码,我假设所有的代码都是针对遇到的每一个'th‘元素运行的,这看起来不太有效?“};”的末尾是否表示此函数的结束?

#B -我希望喜欢来理解这个比较器函数是如何工作的。我的书真的很简短,我在网上找不到任何其他的资源!哪些值将通过参数'a‘和'b’传递到函数中?请有人仔细地解释一下这整个功能好吗?!:)

#C -.eq(列)部分是如何工作的?如果“列”包含循环当前正在进行的迭代,那么该值将始终是最后的迭代值吗?或者,这个比较器函数是否通过.each循环为每次迭代运行?

#D -这个函数可能会遍历排序数组行的每一行,并将其附加到表主体中。这两个参数(索引、行)总是包含在$.each回调函数中吗?

感谢您的帮助!!我已经有了一个关于B的答案,如果你能帮我回答其中一个问题,我会对此表示赞赏的!提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2009-09-28 21:39:44

回答#B: rows.sort()接受一个带有两个参数的函数(在本例中是a和b),并返回一个值来指示排序的两个参数之间的关系。简而言之,它是一个比较器,它将告诉排序算法a是在b之前还是在b之后。在此调用中,a和b将是表的两行,相关单元格(由列表示)将在转换为大写后使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1489484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档