【发布时间】:2019-03-26 04:36:32
【问题描述】:
我需要对一个 alphaNumeric 列表进行排序。我可以排序,但有些排序,因为它是 alphaNumeric,我无法将 abc1 放在 abc10 之前。
我的 HTML 代码:
<ul class="theList">
<li><b>abc11:</b>Hello</li>
<li><b>abc10:</b>Hello</li>
<li><b>xyz24:</b>Hello</li>
<li><b>abc1:</b>Hello</li>
<li><b>xyz2:</b>Hello</li>
</ul>
我的 JavaScript:
$(document).ready(function() {
var list, i, switching, b, shouldSwitch;
list = document.getElementsByClassName("theList");
for (var j = 0; j < list.length; j++) {
switching = true;
while (switching) {
switching = false;
b = list[j].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;
}
}
}
});
我的结果:
- abc10:你好
- abc11:你好
- abc1:你好
- xyz24:你好
- xyz2:你好
预期结果:
- abc1:你好
- abc10:你好
- abc11:你好
- xyz2:你好
- xyz24:你好
我错过了什么?
【问题讨论】:
标签: javascript jquery html list sorting