Сортировать таблицы HTML численно с Javascript - выше 10 не работает - PullRequest
0 голосов
/ 14 сентября 2018

Функция JS, приведенная ниже, сортирует td: s в myTable только по первой цифре в td. Как мне заставить его сортировать на основе всех цифр в тд (порядок от низкого до высокого; например, 1,5,15, а не 1,15,5)?

function sortTable() {
  var table, rows, switching, i, x, y, shouldSwitch;
  table = document.getElementById("myTable");
  switching = true;
  while (switching) {
    switching = false;
    rows = table.rows;
    for (i = 1; i < (rows.length - 1); i++) {
      shouldSwitch = false;
      x = rows[i].getElementsByTagName("TD")[0];
      y = rows[i + 1].getElementsByTagName("TD")[0];
      if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase()) {
        shouldSwitch = true;
        break;
      }
    }
    if (shouldSwitch) {
      rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);
      switching = true;
    }
  }
}

1 Ответ

0 голосов
/ 14 сентября 2018

Используйте parseInt() для преобразования строки в целые числа. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt

Итак, сравнение должно быть сделано как -

if (parseInt(x.innerHTML.toLowerCase()) > parseInt(y.innerHTML.toLowerCase())) {
...