有没有人在我的代码中看到这个缺陷,因为这个让我难过!
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);
});
}
答案 0 :(得分:4)
我不能肯定地根据这个问题说出来,但我认为这就是你所追求的:
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()
只会减少字符串连接(虽然速度有点快,但无差异)。
答案 1 :(得分:1)
你确定你应该使用反向。从我看到你删除一个元素,然后重新编号回到顶部。你应该重新编号到底部还是数字反转?
更多信息请@dave
答案 2 :(得分:0)
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);
});
var item_positions = $('#ml_organize').sortable('toArray');
alert(item_positions);
}
感谢大家的帮助!