【发布时间】:2022-01-12 23:52:40
【问题描述】:
我制作了排序脚本(A到Z)
我的问题是我需要添加什么来获得 unsort 功能,我的意思是设置为 default(在你对它们进行排序之前是怎样的)。
代码:
function sortList() {
document.getElementById('sortedtxt').innerHTML = 'Sorted A-Z';
document.getElementById('sortedtitle').innerHTML = 'BFMAS - Sorted A-Z';
var list, i, switching, b, shouldSwitch;
list = document.getElementById("sortingUL");
switching = true;
while (switching) {
switching = false;
b = list.getElementsByTagName("LI");
for (i = 0; i < (b.length - 1); i++) {
shouldSwitch = false;
if (b[i].innerHTML.toLowerCase() > b[i + 1].innerHTML.toLowerCase()) {
shouldSwitch = true;
break;
}
}
if (shouldSwitch) {
b[i].parentNode.insertBefore(b[i + 1], b[i]);
switching = true;
}
}
}
【问题讨论】:
-
我认为这是不可能的,除非您在排序前将订单存储在某个地方。
-
复制一份初始列表
-
@johnSmith 除了考虑到他们在这里的实现方式之外,这将是 DOM 元素的副本...... ????
-
在对所有元素进行排序之前设置数据索引。然后,您可以使用这些值。也奇怪你不只是使用 array.sort()
-
@Inigo 我怀疑会有任何可识别的性能影响或任何让你 ????实际上,为每次迭代进行 dom 操作比替换/追加一次更无效
标签: javascript list function sorting