Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我怎样才能恢复我的append()列表的顺序?jQuery_Javascript_Jquery - Fatal编程技术网

Javascript 我怎样才能恢复我的append()列表的顺序?jQuery

Javascript 我怎样才能恢复我的append()列表的顺序?jQuery,javascript,jquery,Javascript,Jquery,因此,我有一个使用Jquery append显示的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(){

因此,我有一个使用Jquery append显示的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');
    });
});
$(文档).ready(函数(){
var i=1;
$(“#lisa”)。单击(函数(){
i++;
$(“.voit”).append(“+i+”.Koht”);
});
$(文档)。在('单击','删除',函数()上){
var id=$(this.attr('id');
});
});
这是JFIDLE

还有,如何设置附加字段的最大值?比如如果我不想要超过5个输入字段,我怎么能这样做呢


提前谢谢!:这是一个算法问题。你需要好好想想。 您的代码不可维护,并且存在一些问题

您正在页面上保留共享状态。您将如何在页面或整个应用程序中跟踪此状态?将数据库挂接到此前端时会发生什么

什么是
.rem+id
?您正在使用类作为标识符。还有其他方法可以做到这一点(例如id)。也可以使用数据标签

您需要将所有逻辑捆绑在同一个对象中。这样,更改标记、业务逻辑或迁移到新的前端框架就不会那么痛苦了。
您的条目代表一个域现实。您应该保留这些元素的集合(可能在数组或对象中)。它们有一个唯一的标识符和一个生成HTML标记的呈现方法。删除元素时,只需重新提交已更改的标记。

在删除函数中,只需在每个具有要更新编号的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值。

您需要再次遍历数组并重新分配数字。您应该检查当我删除并添加新的输入字段时会发生什么情况:D ID正在增加:D,但感谢tho。好的一点,我有点仓促。每次删除后,我都添加了一个简单的Id重置,这样它就不会失控。减去1的值将说明第一个文本框“事件ID”。