ホームページ  >  記事  >  ウェブフロントエンド  >  jQueryでファジークエリを実装する手順の詳細な説明

jQueryでファジークエリを実装する手順の詳細な説明

php中世界最好的语言
php中世界最好的语言オリジナル
2018-05-22 11:48:452508ブラウズ

今回はjQueryでファジークエリを実装する手順について詳しく説明します jQueryでファジークエリを実装する際の注意事項を実際に見てみましょう。

要件: リストには多くのコンテンツが含まれており、ユーザーはリスト内のいくつかの項目を検索する必要があります。ユーザーの入力値に一致する項目のみが表示されます。 (バックグラウンドでのページングはなく、非同期インターフェースはデータ追加によって形成されたコンテンツリストを直接返します)

パラメータを渡して呼び出すことでクエリすることもできますが、ここでの主な記録は、front-インターフェイスを再度呼び出すことなく、あいまいクエリの処理を終了します。

html部分:

<p class="search-form">
    <input type="text" placeholder="请输入关键词">
    <span class="icon-clear"></span>
</p>
<p class="content">
  <p class="title row no-gutter">
    <p class="col-20">列表一</p>
    <p class="col-20">列表二</p>
    <p class="col-20">列表三</p>
    <p class="col-20">列表四</p>
    <p class="col-20">列表五</p>
  </p>
  <p class="list-content">
    <ul>
      <li>
        <p class="code">00001</p>
        <p class="name">内容1</p>
        <p>内容2</p>
        <p>内容3</p>
        <p>内容4</p>
      </li>
      <li>……</li>
    </ul>
  </p>
</p>

js部分:

queryList: function(){
  $(".search-input").on("input propertychange", function() {
    var queryStr = $.trim($(".search-input").val());
    if(queryStr === ''){
      $(".list-content li").show();
    }else{
    // 以下是匹配某些列的内容,如果是匹配全部列的话就把find()和.parent()去掉即可
      $(".list-content li").hide().find(".code, .name").filter(":contains('"+queryStr+"')").parent("li").show();
      //$(".list-content").refresh(); //重新刷新列表把隐藏的dom结构去掉。
    }
  });
}

分析: 以上でフロントエンドjsのファジークエリ機能が実現しました(笑)。コードの listen イベントに追加の入力があります。iOS と互換性があるとのことですが、テストしたことのある人がいたら教えてください。

もう一つの問題は、上記の実装方法では、リストの内容が数千以上になると、フォーム入力中にラグが発生することです。これは、多数の DOM 構造を js (非表示または表示) で操作する必要があるためです。 PC では状況はそれほど深刻ではありませんが、携帯電話でテストすると、本当に「スタック」してしまいました。もしマスターがより良い方法を持っているなら、それを改善することを願っています。

この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

vueプロジェクトのパブリックフッターコンポーネントの下部位置適応手順の詳細な説明

Jsの古典的なケースコード分析

以上がjQueryでファジークエリを実装する手順の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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