Javascript 删除一行后,使用jQuery对所有表行重新编号
如何修改下面的函数,使行计数从1开始,而不是从零开始,然后在可能的情况下按升序(从最小到最大)排序表行 以下是相关代码:Javascript 删除一行后,使用jQuery对所有表行重新编号,javascript,jquery,Javascript,Jquery,如何修改下面的函数,使行计数从1开始,而不是从零开始,然后在可能的情况下按升序(从最小到最大)排序表行 以下是相关代码: $("tr.highlighted").remove(); renumberRows() function renumberRows() { $('#data tr').each(function(index, el){ $(this).children('td').first().text(index++); }); } 最简单的解
$("tr.highlighted").remove();
renumberRows()
function renumberRows() {
$('#data tr').each(function(index, el){
$(this).children('td').first().text(index++);
});
}
最简单的解决方案是使用CSS计数器(为了简洁起见,删除了所有与计数器无关的CSS): 当然,上面使用了一种简单的方法来删除一行,该行可能与您自己的方法相似,也可能与您自己的方法不同;然而,这是不相关的,因为CSS会自动对行重新编号 但是,使用jQuery,一旦触发了
.remove()
,就需要显式地重新计算tr
元素的数量。如果remove()
允许一个简单的回调函数:
$(this).remove(function(){
renumberRows();
});
但是,当然,remove()
方法中没有回调的规定。因此,我们需要使用$。when()
和。then()
:
它基本上是在执行$(this.remove()
之后调用renumberRows()
函数
不过,考虑到一个有点愚蠢的感觉解决方案,我想我应该尝试使用:
$(this).remove(renumberRows());
与我的预期相反,这是有效的:。并且比使用$.when().then()链要简单一些
参考资料:
- CSS:
- “”
- jQuery:
如何以及何时删除行?要以最简单的方式修复代码,可以使用++index
或index+1
。对表格行进行排序,进行搜索,你会发现很多解决方案。你应该使用CSS计数器,而不是JS。谷歌我刚才说的话,并学习它。
$.when($(this).remove()).then(renumberRows);
$(this).remove(renumberRows());