jquery排序问题

var j=0;
for(j=0;j<3;j++)
{
$('#headtr:nth-child(j)').click(function(){
var rows = $('tbody').children();
var bAsc=true;
rows.sort(function (tr1, tr2)
{
var value1= tr1.eq[j].val() ;
var value2= tr2.eq[j].val();
if(bAsc)
{
return value1.localeCompare(value2);
}
else
{
return value2.localeCompare(value1);
}
});
for(i=0;i<arr.length;i++)
{
$('tbody').prepend(rows[i]);
}
bAsc=! bAsc;
});
}
效果实现不出 ,求教

rows.sort, 这里sort从哪里来?

<table>
  <thead>
    <tr id="headtr">
      <th>3</th>
      <th>2</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>3</td>
      <td>2</td>
    </tr>
    <tr>
      <td>2</td>
      <td>3</td>
    </tr>
    <tr>
      <td>1</td>
      <td>1</td>
    </tr>
  </tbody>
</table>

$(function () {
$('#headtr th').each(function (index, el) {
    $(el).click(function () {
        // 这里要用get()获取dom数组
        var rows = $('tbody').children().get();
        // 当前排序保存在tr里
        var bAsc = $(this).hasClass('asc');
        if(bAsc) {
            $(this).removeClass('asc');
        } else {
            $(this).addClass('asc');
        }
        rows.sort(function (tr1, tr2) {
          // 获取单元格里的内容
          var value1 = tr1.cells[index].innerHTML;
          var value2 = tr2.cells[index].innerHTML;
          if (bAsc) {
            return value1.localeCompare(value2);
          } else {
            return value2.localeCompare(value1);
          }
        });
        for (var i = 0; i < rows.length; i++) {
            $('tbody').prepend(rows[i]);
        }
    });
});
});

温馨提示:内容为网友见解,仅供参考
无其他回答

如何用jquery对列表进行排序
3)jQuery函数append()--向元素追加内容 该函数向每个匹配的元素内部追加内容。4)JavaScript函数sort()--元素排序 用于对数组元素进行排序。实现无序列表项排序功能的步骤如下。(1)获取所有的列表项,并将其装入数组。(2)对数组对象进行排序。(3)将排好序的数组重新填充到无序列表中。

如何用jquery对列表进行排序?
1、利用jquery选择器获取li数组和ul节点 2、通过数组的sort方法对li进行排序 3、根据ul节点,清空原来li,再把排序后的li节点添加进去 代码:function onTest(){ var arr = $('li'); arr.sort(function(a,b){ return a.innerHTML>b.innerHTML?1:-1; });\/\/对li进行排序,这里按...

jquery表格排序插件?
\/\/排序方法 rows.sort(function(a,b) { if($sortOrder==1) { \/\/升序 if(a.sortKeyb.sortKey)return-1; if(a.sortKeyb.sortKey)return1; return0; } else { \/\/降序 if(a.sortKeyb.sortKey)return1; if(a.sortKeyb.sortKey)return-1; return0; } }); \/\/排序后的对象添加给$table $.eac...

JQUERY 排序问题
(function () { ("#moveToRight").click(function () { var items = $("#select1 option:selected").remove();$("#select2").append(items);px($("#select2"));})("#moveToleft").click(function () { var items = $("#select2 option:selected").remove(); $("#select1")...

jquery tablesorter 排序问题
is: function(s){ return false;},format: function(s){ return s..replace(\/,\/,""); \/\/将逗号去掉 },type: "numeric" \/\/按数值排序 });("#mytable").tablesorter({headers:{4:{sorter:"floatsorter"}}});我也是复制的 http:\/\/ollevere.iteye.com\/blog\/1671801 可是我改了,O(∩_...

使用jquery插件sortable做拖拽排序,将ul中的li排序。li中包含有input框...
这个需要看代码。可能是css或者js进行了限制,或者设置了readonly属性,如果方便,提供下代码,这样方便查找原因。

Jquery 如何实现ul中的ol排序?
如果想实现排序,你可以通过用ol的属性进行排序。下面是个小例子: 1111111 2222222 3333333 4444444var oUl = document.getElementById('ul');var aOl = oUl.children; \/\/aOl 是一个元素集合,只是有数组的方法。但不具备sortvar arr = [];for(var i=0;i<aOl.length;i++){ar...

jq 删除li后为什么li中的ABCD没有重新排序?
2》在each中,由于this本来就是jquery对象(当然是决定于被轮循对象时DOM\/jquery对象),不用$()进行封装,直接使用即可,否则就变数组对象,无法使用innerHTML var optionOrder=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T"...

如何为jquery.datatables指定列可以排序
\/\/2.使用关键字this,在一个插件内部,this表示的是调用该插件的jQuery对象, \/\/3.最后在函数的末尾返回this,返回这个值可以使这个新方法能够继续连缀其他的方法。 var $sortOrder = 0; \/\/排序类型 1表示升序,0表示降序 var $table = $('table#shop')...

使用jQuery实现列表排序功能
jquery拖拽排序,针对后台列表table进行拖拽排序(超实用!)现在很多后台列表为了方便均使用拖拽排序的功能,对列表进行随意的排序。话不多说 ,我在网上找了一些demo,经过对比,现在把方便实用的一个demo列出来,基于jqueryUI.js 先上html代码,很简单:<!DOCTYPE html>jqueryUI拖动tr{cursor: pointer;}...

相似回答