JSFiddle - React, Tailwind, and code Playground
by kayenglajom
HTML
<p>Click, to sort the list alphabetically:</p>
<button onclick="sortList()">Sort</button>
<ul id="fruits">
<li>Grapes</li>
<li>Banana</li>
<li>Apple</li>
<li>Orange</li>
<li>Mango</li>
<li>Pineapple</li>
<li>Cherries</li>
<li>Watermelon</li>
<li>Avocado</li>
<li>Pears</li>
<li>Rome</li>
<li>Coconut</li>
<li>Papaya</li>
</ul>
JavaScript
function sortList() {
var list, i, switching, b, shouldSwitch;
list = document.getElementById("fruits");
switching = true;
/*Make a loop that will continue until
no switching has been done:*/
while (switching) {
//start by saying: no switching is done:
switching = false;
b = list.getElementsByTagName("LI");
//Loop through all list-items:
for (i = 0; i < (b.length - 1); i++) {
//start by saying there should be no switching:
shouldSwitch = false;
/*check if the next item should
switch place with the current item:*/
if (b[i].innerHTML.toLowerCase() > b[i + 1].innerHTML.toLowerCase()) {
/*if next item is alphabetically
lower than current item, mark as a switch
and break the loop:*/
shouldSwitch= true;
break;
}
}
if (shouldSwitch) {
/*If a switch has been marked, make the switch
and mark the switch as done:*/
b[i].parentNode.insertBefore(b[i + 1], b[i]);
switching = true;
}
}
}