2014-02-10 2 views
0
<ul id ="sort"> 
    <li id = '2014-02-07'>tralala<li> 
    <li id = '2013-02-09'>tralala<li> 
    <li id = '2014-01-04'>tralala<li> 
    <li id = '2011-09-05'>tralala<li> 
</ul> 

Я хочу, чтобы результат будет:Как отсортировать тег li с помощью тега ul в JQuery?

<ul id ="sort"> 
    <li id = '2014-02-07'>tralala<li> 
    <li id = '2014-01-04'>tralala<li> 
    <li id = '2013-02-09'>tralala<li> 
    <li id = '2011-09-05'>tralala<li> 
</ul> 

Я хочу, чтобы сортировать по убыванию литиево используя идентификатор в JQuery или JavaScript. Thx

+0

Вы также можете взглянуть на это: http://stackoverflow.com/questions/7211704/jquery-order-by-date-in-data-attribute –

+0

@omriAharon Я хочу сортировать после id, а не после значения of li – Chester

+0

Какой у вас формат? ГГГГ-ММ-ДД или ГГГГ-ДД-ММ? – leaf

ответ

1

Вы можете сделать это:

var list = $('#sort'), 
    items = list.children().get(); 
list.append(items.sort(function(a, b){ 
    return new Date(b.id) - new Date(a.id); 
})); 

Вот демо: http://jsfiddle.net/wared/EE5HB/.

+0

thx, это работает, но у меня вопрос, что произойдет, если мой формат id выглядит так: 2008-01-16 18:00:03 – Chester

+0

Это зависит от того, поддерживается ли он синтаксическим анализатором: https: //developer.mozilla. орг/EN-US/Docs/Web/JavaScript/Справка/Global_Objects/Дата/синтаксический анализ. – leaf

+0

@Chester Вы можете достоверно разобрать его самостоятельно: 'var bits = '2008-01-16 18: 00: 03'.match (/ \ d +/g); var date = new Date (бит [0], бит [1] - 1, бит [2], бит [3], биты [4], бит [5]); '. Ссылка: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date. – leaf

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