title: Sorting HTML Table
body: <p>So, I was following this guide on W3C on how to sort my table:</p>
  
  <p><a href="https://www.w3schools.com/howto/howto_js_sort_table.asp" rel="nofollow noreferrer">https://www.w3schools.com/howto/howto_js_sort_table.asp</a></p>
  
  <p>The second example works for me as I have two (of four) columns that I want to be able to sort by, however, the slight difference is my columns are numeric, not text, so the sort performs, but, doesn't actually sort.</p>
  
  <p>I tried adding the numerical code in the example below in and it doesn't do anything, clicking the header has become like there's no code at all:</p>
  
  <pre><code>&lt;script&gt;
  function sortTable(n) {
    var table, rows, switching, i, x, y, shouldSwitch, dir, switchcount = 0;
    table = document.getElementById("myTable2");
    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.rows;
      /* Loop through all table rows (except the
      first, which contains table headers): */
      for (i = 1; 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 (dir == "asc") {
          if (Number(x.innerHTML) &gt; Number(y.innerHTML)) {
            // If so, mark as a switch and break the loop:
            shouldSwitch = true;
            break;
          }
        } else if (dir == "desc") {
          if (Number(x.innerHTML) &lt; Number(y.innerHTML)) {
            // 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;
        }
      }
    }
  }
  &lt;/script&gt;
  </code></pre>
  
  <p>I also tried just the code out of the numerical example on one column and it does nothing too:
  <a href="https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_sort_table_number" rel="nofollow noreferrer">https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_sort_table_number</a></p>
  
  <p>So I'm obviously missing something blindingly obvious, but, as I'm not a programmer I thought I could just tinker with the bits I did above and it'd be sorted = \</p>
  
  <p>Any help greatly appreciated!</p>