Javascript 在循环中使用jquerys replaceWith()时,元素会被删除
在我的网站上,我有一个Javascript 在循环中使用jquerys replaceWith()时,元素会被删除,javascript,jquery,Javascript,Jquery,在我的网站上,我有一个li列表,我希望能够对其进行排序。我创建了一个函数,该函数执行并使用排序列表调用renderOutput()。现在我想用排序后的列表更新当前的列表 所以我用这个: function renderOutput(list) { list_original = getList(); //list_original is how it looks from beginning list_original.forEach( (element, index) =>
li
列表,我希望能够对其进行排序。我创建了一个函数,该函数执行并使用排序列表调用renderOutput()
。现在我想用排序后的列表更新当前的列表
所以我用这个:
function renderOutput(list) {
list_original = getList(); //list_original is how it looks from beginning
list_original.forEach( (element, index) => {
// list_original and list is always the same length
// for each element in original list, replace with the corresponding in the sorted list
$(element.element).replaceWith(list[index].element);
});
}
但是jquery函数replaceWith似乎会破坏列表的长度。在此函数之前和之后,列表的长度比之前短。(因此,如果我运行此命令,最终将得到一个包含1项的列表)
我怎样才能解决这个问题
谢谢 对列表进行排序并将其追加回
:
$('ul')。追加($('li')。排序(函数(a,b){
返回$(a).text()-$(b).text();
}));代码>
- 三,
- 一,
- 二,
为什么要替换单个列表元素而不是整个列表?你的意思是我应该创建一个新的ul
列表并将元素放入其中,然后用新的更新列表替换页面上的ul
列表?是的,这是我最初的想法。那么你就不必担心阵列被破坏或者其他什么了,你只需把整个ul
换掉就行了,这很聪明。我会试试的,谢谢!!