使用jQuery重新编号列表

时间:2009-12-20 22:07:15

标签: jquery jquery-ui jquery-ui-sortable

我有一个由jQuery UI sortable提供支持的列表,允许用户订购订单项。我希望有一个数字代表该对象被删除后的位置。

<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的订单项移到顶部,那么3会留在它上面。

有没有办法,使用jQuery我可以在每次删除订单项时重新计算数字?

感谢。 :)

2 个答案:

答案 0 :(得分:9)

更短的:

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

答案 1 :(得分:3)

您可以使用父级<li>的{​​{3}} + 1(或计算索引的等效方式)。像

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

这是一个index()。将 / edit 添加到URL以查看代码