title: How to sort numbers in javascript
body: <p>I am trying to use sorting in a table. I am using given below method but there is an error in sorting numbers using bellow Method. This method works properly but issues in numbers ASC and DESC order. I didn't get why happening this. guys, you have any idea about this?</p>
  
  <pre><code>function sortTable(n, selector) {
  var table, rows, switching, i, x, y, shouldSwitch, dir, switchcount = 0;
  ///table = document.getElementById(selector);
  table = $(selector);
  switching = true;
  
  //Set the sorting direction to ascending:
  dir = "asc";
  /*Make a loop that will continue until
  no switching has been done:*/
  while (switching) {
      //start by saying: no switching is done:
      switching = false;
      rows = $(table).find('tr'); ///table.getElementsByTagName("TR");
      /*Loop through all table rows (except the
      first, which contains table headers):*/
      for (i = 0; i &lt; (rows.length - 1) ; i++) {
          //start by saying there should be no switching:
          shouldSwitch = false;
          /*Get the two elements you want to compare,
          one from current row and one from the next:*/
          x = rows[i].getElementsByTagName("TD")[n];
          y = rows[i + 1].getElementsByTagName("TD")[n];
          /*check if the two rows should switch place,
          based on the direction, asc or desc:*/
          if (x != null &amp;&amp; y != null) {
              if (dir == "asc") {
                  if (x.innerHTML.toLowerCase() &gt; y.innerHTML.toLowerCase()) {
                      //if so, mark as a switch and break the loop:
                      shouldSwitch = true;
                      break;
                  }
              } else if (dir == "desc") {
                  if (x.innerHTML.toLowerCase() &lt; y.innerHTML.toLowerCase()) {
                      //if so, mark as a switch and break the loop:
                      shouldSwitch = true;
                      break;
                  }
              }
          }
      }
      if (shouldSwitch) {
          /*If a switch has been marked, make the switch
          and mark that a switch has been done:*/
          rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);
          switching = true;
          //Each time a switch is done, increase this count by 1:
          switchcount++;
      } else {
          /*If no switching has been done AND the direction is "asc",
          set the direction to "desc" and run the while loop again.*/
          if (switchcount == 0 &amp;&amp; dir == "asc") {
              dir = "desc";
              switching = true;
          }
      }
  }
  }
  </code></pre>