ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptを使用してテーブルソート機能を実装するにはどうすればよいですか?

JavaScriptを使用してテーブルソート機能を実装するにはどうすればよいですか?

PHPz
PHPzオリジナル
2023-10-19 08:24:35888ブラウズ

如何使用 JavaScript 实现表格排序功能?

JavaScript を使用してテーブルの並べ替え機能を実装するにはどうすればよいですか?

現代の Web 開発では、テーブルはデータを表示する一般的な方法の 1 つです。テーブルの並べ替えは、ユーザーが関連データをすばやく見つけるのに役立つ重要な機能です。この記事では、JavaScript を使用してテーブルの並べ替え機能を実装する方法を学び、具体的なコード例を示します。

1. 準備

まず、データを含むテーブルが必要です。テーブルに「名前」、「年齢」、「市区町村」という 3 つの列があるとします。 HTML でテーブルを作成するコードは次のとおりです:

<table id="myTable">
  <thead>
    <tr>
      <th>姓名</th>
      <th>年龄</th>
      <th>城市</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>张三</td>
      <td>25</td>
      <td>北京</td>
    </tr>
    <tr>
      <td>李四</td>
      <td>30</td>
      <td>上海</td>
    </tr>
    <tr>
      <td>王五</td>
      <td>22</td>
      <td>广州</td>
    </tr>
    <!-- 更多的数据行... -->
  </tbody>
</table>

2. テーブルのソートの実装

次に、JavaScript を使用してテーブルのソート機能を実装します。

まず、テーブルへの参照を取得する必要があります。 getElementById メソッドを使用してテーブル要素を取得できます。

var table = document.getElementById("myTable");

次に、テーブルの各列にクリック イベントを追加する必要があります。ユーザーが列のヘッダーをクリックすると、並べ替え機能がトリガーされます。

var th = table.getElementsByTagName("th");
for (var i = 0; i < th.length; i++) {
  th[i].addEventListener("click", function() {
    sortTable(table, i);
  });
}

次に、並べ替え関数 sortTable を実装しましょう。この関数は 2 つのパラメータを受け取ります。1 つはテーブル要素、もう 1 つは並べ替えられる列のインデックスです。

function sortTable(table, column) {
  var rows = Array.from(table.getElementsByTagName("tr"));

  rows.sort(function(a, b) {
    var cellA = a.getElementsByTagName("td")[column];
    var cellB = b.getElementsByTagName("td")[column];

    var valueA = cellA.innerText || cellA.textContent;
    var valueB = cellB.innerText || cellB.textContent;

    if (valueA < valueB) {
      return -1;
    } else if (valueA > valueB) {
      return 1;
    } else {
      return 0;
    }
  });

  for (var i = 0; i < rows.length; i++) {
    table.appendChild(rows[i]);
  }
}

この並べ替え関数では、まず Array.from メソッドを使用して、HTMLCollection 型のテーブル行を配列に変換します。次に、sort メソッドを使用して配列を並べ替えます。並べ替え操作では、innerText または textContent 属性を使用して、テーブル セルのテキスト コンテンツを取得し、それを比較します。最後に、並べ替えた行をテーブルに戻して並べ替えを完了します。

3. 完全なサンプル コード

完全なサンプル コードは次のとおりです:




  表格排序示例
  <script>
    function sortTable(table, column) {
      var rows = Array.from(table.getElementsByTagName("tr"));

      rows.sort(function(a, b) {
        var cellA = a.getElementsByTagName("td")[column];
        var cellB = b.getElementsByTagName("td")[column];

        var valueA = cellA.innerText || cellA.textContent;
        var valueB = cellB.innerText || cellB.textContent;

        if (valueA < valueB) {
          return -1;
        } else if (valueA > valueB) {
          return 1;
        } else {
          return 0;
        }
      });

      for (var i = 0; i < rows.length; i++) {
        table.appendChild(rows[i]);
      }
    }

    window.onload = function() {
      var table = document.getElementById(&quot;myTable&quot;);
      var th = table.getElementsByTagName("th");
      for (var i = 0; i < th.length; i++) {
        th[i].addEventListener("click", function() {
          sortTable(table, i);
        });
      }
    };
  </script>


  
姓名 年龄 城市
张三 25 北京
李四 30 上海
王五 22 广州

4. 結論

上記のコード例を通じて、次のことを学びました。 JavaScriptを使用してテーブルソート機能を実装する方法。テーブルのヘッダーにクリック イベントを追加し、イベント ハンドラーで並べ替え関数を呼び出すことで、さまざまな列に従って並べ替える機能を実装できます。このようにして、ユーザーはテーブルを簡単に並べ替えて、目的のデータをより速く見つけることができます。この記事があなたのお役に立てれば幸いです、読んでいただきありがとうございます!

以上がJavaScriptを使用してテーブルソート機能を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。