2012-03-26 7 views
0

Здесь код только сортировка элементов Li в восходящем order.How сортировать как в возрастающем и убывающем порядке, используя этот код Sorting <li> tagsСортировка списка с использованием jQuery?

function sort(list, key) { 
     $($(list).get().reverse()).each(function (outer) { 
      var sorting = this; 
      $($(list).get().reverse()).each(function (inner) { 
       if ($(key, this).text().localeCompare($(key, sorting).text()) > 0) { 
        this.parentNode.insertBefore(sorting.parentNode.removeChild(sorting), this); 
       } 
      }); 
     }); 
    } 

и

window.onload = function() { 
     var desc = false; 
     document.getElementById("stCodeDSC").onclick = function() { 
      //    sortUnorderedList("list3", desc); 

      sort('ul.conn1>li', 'td.code1'); 
      desc = !desc; 
      return false; 
     } 

Любое предложение?

EDIT: Если я дать <0 то сортирует в порядке убывания ..

EDIT2:

$(document).ready(function() { 
     var desc = false; 
     document.getElementById("stCodeDSC").onclick = function() { 
      //    sortUnorderedList("list3", desc); 

      sort('ul.conn>li', 'td.code'); 

      desc = !desc; 
      return false; 
     } 
     document.getElementById("stNameDSC").onclick = function() { 
      //    sortUnorderedList("list3", desc); 

      sort('ul.conn>li', 'td.name'); 
      desc = !desc; 
      return false; 
     } 
    }); 
+0

FYI: Whe n у вас есть jQuery, вы никогда не используете 'window.onload'. – Tomalak

+0

Могу ли я узнать причину этого? – bala3569

+0

Поскольку jQuery предоставляет простой способ привязать обработчик событий к событию загрузки, который не требует перезаписывания глобального. http://api.jquery.com/ready/ – Tomalak

ответ

1

Как насчет плагин JQuery:

function elemLocaleCompare(left, right) { 
    return $(left).text().localeCompare($(right).text()); 
} 

$.fn.extend({ 
    sortList: function(order) { 
     return this.each(function() { 
      var $list = $(this), 
       li = $list.children("li").toArray().sort(elemLocaleCompare); 

      if (li.length == 0) return true; 

      order = order || $list.data("nextOrder") || "asc"; 

      if (order == "asc") 
       $list.append(li).data("nextOrder", "desc"); 
      else 
       $list.append(li.reverse()).data("nextOrder", "asc"); 
     }); 
    } 
}); 

Используйте как:

$("ol").sortList("asc"); 

// or... 
$("#someList").sortList(); // initial sort order, "asc" is default 

$("#someButton").click(function() { 
    $("#someList").sortList();  // no argument -> toggle sort order 
}); 
​ 
+0

<% # Eval ("code")%> < % # Eval («Name»)%> – bala3569

+0

Здесь мне нужно сортировать по коду одним нажатием кнопки и именем на другой кнопке. Нажмите – bala3569

+0

Посмотрите на мой EDIT2.. Мне так нужно – bala3569

Смежные вопросы