JavaScriptでテーブル要素のソート操作を実装_JavaScriptスキル
サイズ、時間、価格など、インターネット上で分類できる多くのことがわかります。
次に、並べ替え機能も試してみましょう:
ソート機能コード:クリック後のソート~復元、昇順・降順が含まれます。
function sortAge(){ //对年龄进行排序,要先进行获得每一行对象,然后对象对象中的第一个(从0 开始)的大小进行排序 var tabNode = document.getElementById("tabid"); var rows0 = tabNode.rows; var rows1 = []; //现将元素拷贝一份出来, 第一行不用排序 for (var x = 1; x < rows0.length; x++) { rows1[x - 1] = rows0[x]; } for (var x = 0; x < rows1.length - 1; x++) {//每个元素是行对象 for (var y = x + 1; y < rows1.length; y++) { //对每一行的内容进行解析成数字 if (parseInt(rows1[x].cells[1].innerHTML) > parseInt(rows1[y].cells[1].innerHTML)) { //alert("aa="+x+":"+rows1[x].cells[1].innerHTML); //alert("bb"+rows1[y].cells[1].innerHTML); var temp = rows1[x]; rows1[x] = rows1[y]; rows1[y] = temp; } } } /* 点击之后排序,排序之后恢复之前的状态 if (flag){ for (var x = 0; x < rows1.length; x++) { // tabNode.childNodes[0].appendChild(rows[x]);//方法一: 不一定兼容 rows1[x].parentNode.appendChild(rows1[x]); } }else{ for (var x = 1; x < rows0.length; x++) { // tabNode.childNodes[0].appendChild(rows[x]);//方法一: 不一定兼容 rows0[x].parentNode.appendChild(rows0[x]); } } flag=!flag;*/ /* 下面的是点之后出现正序和逆序显示 正序和逆序的区别就是appendchild的前后关系而已*/ var ageimg=document.getElementById("ageid"); if (flag) { for (var x = 0; x < rows1.length; x++) {//排好序之后就从0开始 // tabNode.childNodes[0].appendChild(rows[x]);//方法一: 不一定兼容 rows1[x].parentNode.appendChild(rows1[x]); } ageimg.innerHTML="年龄▲";//设置上面的图标 }else{ for (var x = rows1.length-1; x >=0; x--) { // tabNode.childNodes[0].appendChild(rows[x]);//方法一: 不一定兼容 rows1[x].parentNode.appendChild(rows1[x]); } ageimg.innerHTML="年龄▼" } flag=!flag; loading();//排序之后还要对颜色重新设置 }
テーブルの背景のカラーコードを設定し、CSS をインポートします:
function loading(){ var name; var tabNode=document.getElementById("tabid"); var rows=tabNode.rows;//获得每一行的数组对象 var rowslength=rows.length;//每一行的长度 for(var x=1;x<rowslength;x++){//根据每一个去设置 if(x%2==0){ rows[x].className="one"; }else{ rows[x].className="two"; } //当移动上去之后,之前的颜色要记录下来,不然移下来之后全部都是一个颜色了 rows[x].onmouseover=function(){ name=this.className; this.className="three"; } rows[x].onmouseout=function(){ this.className=name; } } } onload=function(){ loading(); }
CSS コード:
table td a:hover{ background-color:#0080c0; } .one{ background-color:#80ff00; } .two{ background-color:#ff8040; } .three{ background-color:#008040; } table{ width:500px; height:500px; border:#400040 solid 2px; border-collapse:collapse; } table td,th{ border:solid 2px; } table th{ background-color:#c0c0c0; }
レンダリング-----ソート前:
昇順:
降順:
完全なコード:
<!DOCTYPE html> <html> <head> <title>sort.html</title> <style type="text/css"> table td a:hover{ background-color:#0080c0; } .one{ background-color:#80ff00; } .two{ background-color:#ff8040; } .three{ background-color:#008040; } table{ width:500px; height:500px; border:#400040 solid 2px; border-collapse:collapse; } table td,th{ border:solid 2px; } table th{ background-color:#c0c0c0; } </style> <script type="text/javascript"> function loading(){ var name; var tabNode=document.getElementById("tabid"); var rows=tabNode.rows;//获得每一行的数组对象 var rowslength=rows.length;//每一行的长度 for(var x=1;x<rowslength;x++){//根据每一个去设置 if(x%2==0){ rows[x].className="one"; }else{ rows[x].className="two"; } //当移动上去之后,之前的颜色要记录下来,不然移下来之后全部都是一个颜色了 rows[x].onmouseover=function(){ name=this.className; this.className="three"; } rows[x].onmouseout=function(){ this.className=name; } } } onload=function(){ loading(); } var flag=true; function sortAge(){ //对年龄进行排序,要先进行获得每一行对象,然后对象对象中的第一个(从0 开始)的大小进行排序 var tabNode = document.getElementById("tabid"); var rows0 = tabNode.rows; var rows1 = []; //现将元素拷贝一份出来, 第一行不用排序 for (var x = 1; x < rows0.length; x++) { rows1[x - 1] = rows0[x]; } for (var x = 0; x < rows1.length - 1; x++) {//每个元素是行对象 for (var y = x + 1; y < rows1.length; y++) { //对每一行的内容进行解析成数字 if (parseInt(rows1[x].cells[1].innerHTML) > parseInt(rows1[y].cells[1].innerHTML)) { //alert("aa="+x+":"+rows1[x].cells[1].innerHTML); //alert("bb"+rows1[y].cells[1].innerHTML); var temp = rows1[x]; rows1[x] = rows1[y]; rows1[y] = temp; } } } /* 点击之后排序,排序之后恢复之前的状态 if (flag){ for (var x = 0; x < rows1.length; x++) { // tabNode.childNodes[0].appendChild(rows[x]);//方法一: 不一定兼容 rows1[x].parentNode.appendChild(rows1[x]); } }else{ for (var x = 1; x < rows0.length; x++) { // tabNode.childNodes[0].appendChild(rows[x]);//方法一: 不一定兼容 rows0[x].parentNode.appendChild(rows0[x]); } } flag=!flag;*/ /* 下面的是点之后出现正序和逆序显示 正序和逆序的区别就是appendchild的前后关系而已*/ var ageimg=document.getElementById("ageid"); if (flag) { for (var x = 0; x < rows1.length; x++) {//排好序之后就从0开始 // tabNode.childNodes[0].appendChild(rows[x]);//方法一: 不一定兼容 rows1[x].parentNode.appendChild(rows1[x]); } ageimg.innerHTML="年龄▲";//设置上面的图标 }else{ for (var x = rows1.length-1; x >=0; x--) { // tabNode.childNodes[0].appendChild(rows[x]);//方法一: 不一定兼容 rows1[x].parentNode.appendChild(rows1[x]); } ageimg.innerHTML="年龄▼" } flag=!flag; loading();//排序之后还要对颜色重新设置 } </script> </head> <body> <table id="tabid"> <tr><th>姓名</th> <th><a href="javascript:void(0)" onclick="sortAge()" id="ageid">年龄</a></th> <th>出生地</th> </tr> <tr> <td>张三</td> <td>13</td> <td>湖南长沙</td> </tr> <tr> <td>李四</td> <td>15</td> <td>湖南常德</td> </tr> <tr> <td>jack</td> <td>45</td> <td>湖南临澧</td> </tr> <tr> <td>王华</td> <td>23</td> <td>浙江杭州</td> </tr> <tr> <td>张进</td> <td>30</td> <td>安微合肥</td> </tr> <tr> <td>周全</td> <td>23</td> <td>湖南益阳</td> </tr> <tr> <td>杨哥</td> <td>42</td> <td>湖南常德</td> </tr> </table> </body> </html>
上記はこの記事の全内容であり、JavaScript でのテーブル要素の並べ替え方法について詳しく説明しています。気に入っていただければ幸いです。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

この記事では、ブラウザでJavaScriptのパフォーマンスを最適化するための戦略について説明し、実行時間の短縮、ページの負荷速度への影響を最小限に抑えることに焦点を当てています。

フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

この記事では、ブラウザ開発者ツールを使用した効果的なJavaScriptデバッグについて説明し、ブレークポイントの設定、コンソールの使用、パフォーマンスの分析に焦点を当てています。

この記事では、Javaのコレクションフレームワークの効果的な使用について説明します。 データ構造、パフォーマンスのニーズ、スレッドの安全性に基づいて、適切なコレクション(リスト、セット、マップ、キュー)の選択を強調しています。 コレクションの使用を効率的に最適化します

この記事では、ソースマップを使用して、元のコードにマッピングすることにより、Minified JavaScriptをデバッグする方法について説明します。ソースマップの有効化、ブレークポイントの設定、Chrome DevtoolsやWebpackなどのツールの使用について説明します。

エントリーレベルのタイプスクリプトチュートリアルをマスターしたら、TypeScriptをサポートするIDEで独自のコードを作成し、JavaScriptにコンパイルできるはずです。このチュートリアルは、TypeScriptのさまざまなデータ型に飛び込みます。 JavaScriptには、NULL、未定義、ブール値、数字、文字列、シンボル(ES6によって導入)とオブジェクトの7つのデータ型があります。 TypeScriptはこれに基づいてより多くのタイプを定義し、このチュートリアルではすべてを詳細に説明します。 ヌルデータ型 JavaScriptのように、Typescriptのnull

このチュートリアルでは、chart.jsを使用してパイ、リング、およびバブルチャートを作成する方法について説明します。以前は、4つのチャートタイプのchart.js:ラインチャートとバーチャート(チュートリアル2)、およびレーダーチャートと極地域チャート(チュートリアル3)を学びました。 パイとリングチャートを作成します パイチャートとリングチャートは、さまざまな部分に分かれている全体の割合を示すのに理想的です。たとえば、パイチャートを使用して、サファリの男性ライオン、女性ライオン、若いライオンの割合、または異なる候補者が選挙で受け取る票の割合を示すことができます。 パイチャートは、単一のパラメーターまたはデータセットの比較にのみ適しています。パイチャートのファンの角度はデータポイントの数値サイズに依存するため、パイチャートは値のあるエンティティをゼロ値で描画できないことに注意してください。これは、割合がゼロのエンティティを意味します
