ホームページ  >  記事  >  ウェブフロントエンド  >  テーブル内の特定の列の内容を検索およびフィルターする手順の詳細な説明

テーブル内の特定の列の内容を検索およびフィルターする手順の詳細な説明

php中世界最好的语言
php中世界最好的语言オリジナル
2018-05-22 10:30:423728ブラウズ

今回は、テーブル内の特定の列のコンテンツを検索およびフィルタリングする手順について詳しく説明します。テーブル内の特定のコンテンツの列を検索およびフィルタリングするための注意事項は何ですか。ケース、見てみましょう。

場合によっては、データベースからデータを読み取り、テーブルに表示することがあります。このとき、検索ボックスにキーワードを入力し、テーブルの内容をリアルタイムでフィルタリングするという新しい要件が発生します。

データベースクエリをすぐにトリガーしてから表示を呼び戻すと、表示が遅くなり、サーバーが遅くなり、ユーザーエクスペリエンスが低下します。このとき、テーブルの特定の列の即時フィルタリングを実行する純粋なJS操作がある場合、これにより、検索速度が向上するだけでなく、サーバーリソースを占有する必要もなく、ユーザーは自然に満足できます。

実装は次のとおりです。最初にレンダリングを確認します。

開始状態:

入力ボックスに「e」を入力すると、テーブルがすぐにフィルタリングされ、フィルタリングされたテーブルに「e」を含む行が表示されます。テーブルはフィルタリングされ、「e」のない行はフィルタリングされます。非表示にするには、

オンライン HTML/JS/CSS 実行ツールhttp://tools.jb51.net/code/HtmlJsRun を使用します。は以下のとおりです:

実装コード:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> JS搜索筛选table列</title>
</head>
<script type="text/javascript">
function onSearch(obj){//js函数开始
  setTimeout(function(){//因为是即时查询,需要用setTimeout进行延迟,让值写入到input内,再读取
    var storeId = document.getElementById('store');//获取table的id标识
    var rowsLength = storeId.rows.length;//表格总共有多少行
    var key = obj.value;//获取输入框的值
    var searchCol = 0;//要搜索的哪一列,这里是第一列,从0开始数起
    for(var i=1;i<rowsLength;i++){//按表的行数进行循环,本例第一行是标题,所以i=1,从第二行开始筛选(从0数起)
      var searchText = storeId.rows[i].cells[searchCol].innerHTML;//取得table行,列的值
      if(searchText.match(key)){//用match函数进行筛选,如果input的值,即变量 key的值为空,返回的是ture,
        storeId.rows[i].style.display=&#39;&#39;;//显示行操作,
      }else{
        storeId.rows[i].style.display=&#39;none&#39;;//隐藏行操作
      }
    }
  },200);//200为延时时间
}
</script>
<body>
<p > <input name="key" type="text" id="key" onkeydown="onSearch(this)" value="" /></p>
<table width="200" border="1" id="store"><!-- id与函数的getId一致 -->
 <tr bgcolor="#CCCCCC">
  <td>name</td>
  <td> </td>
  <td> </td>
 </tr>
  <td>good</td>
  <td> </td>
  <td> </td>
 </tr>
 <tr>
  <td>better</td>
  <td> </td>
  <td> </td>
 </tr>
 <tr>
  <td>best</td>
  <td> </td>
  <td> </td>
 </tr>
 <tr>
  <td>bad</td>
  <td> </td>
  <td> </td>
 </tr>
 <tr>
  <td>worse</td>
  <td> </td>
  <td> </td>
 </tr>
 <tr>
  <td>worst</td>
  <td> </td>
  <td> </td>
 </tr>
</table>
</body>
</html>
信じてください。この記事の事例を読んだ後は、この方法をマスターしたことになります。さらに興味深い情報については、PHP 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

NodeJs携帯電話アクセスローカルサーバーケース分析

vueでの$emitと$on親子兄弟コンポーネント操作の詳細な説明

以上がテーブル内の特定の列の内容を検索およびフィルターする手順の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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