在我的网站上,我有一个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个项目的列表)。
我该如何解决这个问题?
谢谢!
答案 0 :(得分:0)
对列表进行排序并将其追加回<ul>
:
$('ul').append($('li').sort(function(a, b) {
return $(a).text() - $(b).text();
}));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li>3</li>
<li>1</li>
<li>2</li>
</ul>