2009-10-19 4 views
3

Есть ли плагин jQuery, который позволит отсортировать список элементов (<li>...</li>) в соответствии с их метаданными, хранящимися как скрытый элемент? Например, каждый элемент списка имеет два скрытых ввода: author и year. Я хочу сортировать список, используя эти скрытые элементы. Интересно, есть ли готовый к использованию плагин для jQuery. До сих пор я не нашел такой плагин. Единственное, что я нашел, - это сортировка таблиц.Есть ли плагин jQuery для сортировки списка?

<ul> 
    <li>Position 1 
    <input type="hidden" name="author" value="Peter"/> 
    <input type="hidden" name="year" value="2004"/> 
    </li> 
    <li>Position 2 
    <input type="hidden" name="author" value="John"/> 
    <input type="hidden" name="year" value="2005"/> 
    </li> 
    <li>Position 3 
    <input type="hidden" name="author" value="Tony"/> 
    <input type="hidden" name="year" value="2006"/> 
    </li> 
</ul> 
+3

Пожалуйста, обратите внимание, что "UL" трибуны для «Unordered List»: D –

+0

Hah, это правда. Однако этот список несортирован в смысле нумерации элементов ;-) – czuk

ответ

1

Здесь вы идете:

<ul> 
    <li>Position 1 
    <input type="hidden" name="author" value="Peter"/> 
    <input type="hidden" name="year" value="2004"/> 
    </li> 
    <li>Position 2 
    <input type="hidden" name="author" value="John"/> 
    <input type="hidden" name="year" value="2005"/> 
    </li> 
    <li>Position 3 
    <input type="hidden" name="author" value="Tony"/> 
    <input type="hidden" name="year" value="2006"/> 
    </li> 
</ul> 

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script> 

<script type="text/javascript"> 
    jQuery.fn.sort = function() { 
     return this.pushStack([].sort.apply(this, arguments), []); 
    }; 

    function mySorter(a,b){ 
     return $(a).find("[name=author]").val() > $(b).find("[name=author]").val() ? 1 : -1; 
    }; 

    $(document).ready(function(){ 
     $('ul li').sort(mySorter).appendTo('ul'); 
    }) 

</script> 

Я приспособил его от: http://www.wrichards.com/blog/2009/02/jquery-sorting-elements/

Edit: исправлена ​​ошибка с Валом() и 'уль'

+0

@Lance ~ Хорошая работа, я наткнулся на это, и это работает как ожидалось! – Breadtruck

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