我怎么能得到我的append()列表,按顺序? jQuery的

时间:2017-02-28 19:13:54

标签: javascript jquery

所以我有一个使用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

2 个答案:

答案 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);
  }
});

});

Updated fiddle

请注意,如果需要,您也可以在此循环内更新其他值,例如remX类号。

修改 将i的值重置为输入数量,以便将来的添加显示正确的ID值。