JavaScriptを使用したHTMLテーブルの複数のフィルタリング方法


  1. インプットフィールドを使用したフィルタリング: HTMLには、テーブルをフィルタリングするためのインプットフィールドを追加します。
<input type="text" id="filterInput" onkeyup="filterTable()" placeholder="フィルター">
<table id="myTable">
  <!-- テーブルの内容 -->
</table>

JavaScriptの関数を作成し、入力フィールドの値とテーブルの行を比較します。

function filterTable() {
  var input, filter, table, tr, td, i, txtValue;
  input = document.getElementById("filterInput");
  filter = input.value.toUpperCase();
  table = document.getElementById("myTable");
  tr = table.getElementsByTagName("tr");
  for (i = 0; i < tr.length; i++) {
    td = tr[i].getElementsByTagName("td")[0]; // テーブルの最初の列をフィルタリング対象にします
    if (td) {
      txtValue = td.textContent || td.innerText;
      if (txtValue.toUpperCase().indexOf(filter) > -1) {
        tr[i].style.display = "";
      } else {
        tr[i].style.display = "none";
      }
    }
  }
}
  1. チェックボックスを使用したフィルタリング: HTMLには、フィルタリングするためのチェックボックスを追加します。
<input type="checkbox" id="filterCheckbox" onclick="filterTable()">
<label for="filterCheckbox">フィルターを適用する</label>
<table id="myTable">
  <!-- テーブルの内容 -->
</table>

JavaScriptの関数を作成し、チェックボックスの状態に応じてテーブルの行を表示または非表示にします。

function filterTable() {
  var table, tr, i;
  table = document.getElementById("myTable");
  tr = table.getElementsByTagName("tr");
  for (i = 0; i < tr.length; i++) {
    if (document.getElementById("filterCheckbox").checked) {
      tr[i].style.display = "";
    } else {
      tr[i].style.display = "none";
    }
  }
}

これらは、HTMLテーブルをフィルタリングするための2つの基本的な方法ですが、さまざまな要件に応じてカスタマイズすることができます。他にも、ライブラリやフレームワークを使用して高度なフィルタリング機能を実装する方法もあります。これらの例はあくまで基本的なものであり、さまざまな方法が存在しますので、必要に応じて調査して試してみてください。