2009-12-20 2 views
4

У меня есть список, основанный на jQuery UI's sortable, который позволяет пользователю упорядочивать позиции. Я хочу иметь число, которое представляет позицию этого объекта после его удаления.Перенумерация списка с помощью jQuery

<ul> 
    <li><span class="number">1</span> Apple</li> 
    <li><span class="number">2</span> Microsoft</li> 
    <li><span class="number">3</span> Canonical</li> 
<ul> 

Прямо сейчас у меня есть номер (не используя <ol>, потому что я хочу, чтобы стиль/позицию номер ... и что бы не решить эту проблему так или иначе). Очевидно, что если бы я переместил позицию Canonical в верхнюю часть, она осталась бы с ней.

Есть ли способ, используя jQuery, чтобы я мог пересчитывать числа каждый раз, когда позиция упала на место?

Спасибо. :)

ответ

9

Короче:

$('li > span.number').each(function(i) { 
    $(this).text(i+1); 
}); 
+1

+1 - хороший звонок –

3

Вы можете использовать index() +1 (или эквивалентный способ вычисления индекса) <li> в родительском. Что-то вроде

$('li > span.number').each(function() { 
    var $this = $(this); 
    $this.text($this.parent('li').prevAll().length + 1); 
}); 

Адрес Working Demo. Добавить /редактировать к URL, чтобы увидеть код

+0

Благодарю вас так много! Работал как шарм! :) –

+0

+1 для обеспечения демонстрации, полезно видеть все это вместе – Ojen

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