所以我有一个使用Jquery追加显示的div列表。在每个列表上我添加了一个id,每次我添加一个输入字段数量增加,当我删除它只删除我想要删除的数字,但我怎么能得到这个数字列表顺序? 像1,2,3,4(我删除2)= 1,3,4,=错 更像是1,2,3,4(我删除2),1,2,3等。
代码:
$(document).ready(function(){
var i = 1;
$("#lisa").click(function(){
i++;
$(".voit").append('<div class="input-group rem'+i+'"><div class="input-group-addon ees">'+i+'. Koht</div><input type="text" name="voitj' + i + '" class="form-control" placeholder="Võitja auhind"/><div class="input-group-addon"><span id="'+i+'" class="glyphicon glyphicon-minus remove"></span></div></div>');
});
$(document).on('click', '.remove', function(){
var id = $(this).attr('id');
});
});
这是jfiddle https://jsfiddle.net/0wbzpumt/2/
而且,我如何设置最大附加字段?就像我不喜欢,我想要超过5个输入字段,我该怎么做。
提前致谢! :d
答案 0 :(得分:0)
这是一个算法问题。你需要更好地思考它。 您的代码无法维护,并且存在一些问题。
您在页面上保持共享状态。您如何在整个页面或整个应用程序中跟踪此状态?将数据库挂钩到此前端会发生什么?
什么是.rem+id
?您正在使用类作为标识符。还有其他方法可以做到这一点(例如id)。也可以使用数据标记。
您需要捆绑同一对象中的所有逻辑。然后,更改标记,业务逻辑或转移到新的前端框架将不会那么痛苦。 您的条目代表了一个域名现实。你应该保留这些的集合(可能在数组或对象中)。它们具有唯一标识符和生成HTML标记的呈现方法。删除元素时,只需重新渲染已更改的标记。
答案 1 :(得分:0)
在你的删除功能中,只需循环遍历每个具有你想要更新的数字的div,并根据循环索引分配一个值:
$(document).on('click', '.remove', function(){
var id = $(this).attr('id');
$('.rem'+id+'').remove();
$.each($('.input-group-addon.ees'), function(index, value) {
if(index > 0) {
$(value).text(index);
}
});
});
请注意,如果需要,您也可以在此循环内更新其他值,例如remX类号。
修改强> 将i的值重置为输入数量,以便将来的添加显示正确的ID值。