请问大家 我通过一个数组索引去删除元素时,遇到索引发生改变如何处理?

new_get_index.forEach(function(item) { 
                                                                                    
   $("#ul_pics li").eq(item).remove()

})

例:new_get_index = [4,5]

new_get_index 是属索引数组,用jq 写的 我想根据 new_get_index的每项索引 去删除 $("#ul_pics li") 里的对应元素,但是我发现 循环删除的时候,$("#ul_pics li")的索引会发生改变,删错索引,请问这种情况 要怎么处理?不知道我有没有说清楚


                                                                               for(let i=$("#ul_pics li").length-1; i >= 0;i--){

                                                                                    if($("#ul_pics li").eq(i).attr('id').indexOf('gallery') == -1){

                                                                                        $("#ul_pics li").eq(i).remove()

                                                                                       
                                                                                    }
                                                                                }
阅读 1.9k
2 个回答
  1. 从后往前删除
  2. 下标 -1 ,也可以理解为步长不 +1
new_get_index.sort(function(a, b){return b-a}); // 降序排序

new_get_index.forEach(function(item) { 
   $("#ul_pics li").eq(item).remove();
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题