我有一个由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我可以在每次删除订单项时重新计算数字?
感谢。 :)
答案 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以查看代码