Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
  <ul>
    <li><div>Текст</div><div>5</div><div>Текст</div></li>
    <li><div>Текст</div><div>15</div><div>Текст</div></li>
    <li><div>Текст</div><div>2</div><div>Текст</div></li>
    <li><div>Текст</div><div>20</div><div>Текст</div></li>
    <li><div>Текст</div><div>1</div><div>Текст</div></li>
  </ul>
  <button onclick="sort()">Sort</button>
</body>
</html>
 
body {  
  font-family: 'Trebuchet MS', sans-serif;
  color: #444;
  font-size: 14px;
}
ul {
  margin: 15px;
  padding: 5px 15px;
  border: 1px solid #eee;
  background: #fff;
  border-radius: 3px;
  list-style: none;
}
li {
  padding: 10px; 
}
li:not(:last-child) {
   border-bottom: 1px dotted #ddd;
}
button {
  margin: 10px 15px;
  border: 1px solid #eee;
  border-radius: 3px;
  background: #fff;
  padding: 8px;
  min-width: 100px;
  cursor: pointer;
  font-family: inherit;
  font-size: inherit;
  color: #444;
}
button:hover {
  background-color: #fbfbfb;
}
 
console.clear();
function sort() {
  var nodeList = document.querySelectorAll('li');
  var itemsArray = [];
  var parent = nodeList[0].parentNode;
  for (var i = 0; i < nodeList.length; i++) {    
    itemsArray.push(parent.removeChild(nodeList[i]));
  }
  itemsArray.sort(function(nodeA, nodeB) {
      var textA = nodeA.querySelector('div:nth-child(2)').textContent;
      var textB = nodeB.querySelector('div:nth-child(2)').textContent;
      var numberA = parseInt(textA);
      var numberB = parseInt(textB);
      if (numberA < numberB) return -1;
      if (numberA > numberB) return 1;
      return 0;
    })
    .forEach(function(node) {
      parent.appendChild(node)
    });
}
Output 300px

This bin was created anonymously and its free preview time has expired (learn why). — Get a free unrestricted account

Dismiss x
public
Bin info
anonymouspro
0viewers