jQuery 删除一个元素并对剩余元素重新编号

标签 jquery reverse each

有人看到我的代码中的缺陷吗,因为这个问题让我难住了!

function removeMLRow(rowNo) {
    $('#ml_organize li:eq(' + (rowNo - 1) + ')').remove();
    $($('#ml_organize li:eq(' + (rowNo) + ')').get().reverse()).each(function() {
        var newID = 'li' + ($(this).index() - 1);
        $(this).attr('id',newID);
    });
}

最佳答案

根据这个问题,我不能肯定地说,但我认为这就是你想要的:

function removeMLRow(rowNo) {
    $('#ml_organize li').eq(rowNo - 1).remove();
    $('#ml_organize li').slice(rowNo -1).each(function() {
        var newID = 'li' + ($(this).index() + 1);
        $(this).attr('id',newID);
    });
}

首先,您可以使用 .eq() 而不是 :eq() 只是为了让事情变得更干净。然后我们使用 .slice() 获取所有<li> 我们删除的元素之后,并且仅对 <li> 的元素进行编号的。您可以使用 :gt() (大于索引),但是 .slice() 只是减少了字符串连接(虽然速度更快,但差异无穷小)。

关于jQuery 删除一个元素并对剩余元素重新编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3392461/

相关文章:

jquery - Internet Explorer CSS 中的 Transform-Style preserve-3d 不起作用

jquery - 如何在 iPhone 上关闭屏幕上的 'hide' 内容?

javascript - 使用 AJAX 在 PHP 页面上动态显示 SQL 查询

Linux shell 命令反转变长文本记录的字段顺序

自定义 uint16_t 反向函数返回 0x8000

javascript - jQuery:.each() 似乎返回错误的值

javascript - jQueryeach() 函数的范围?

javascript - 如何检测何时加载所有图像以及何时以适当的高度呈现元素

c - 为什么数字c程序的逆序是用数字位置的概念编写的,而不是像下面我发布的那样?

javascript - jquery html() 仅给出每个 () 方法使用的第一个值