シンプルな商品スクリーニング機能を実現するjs

シンプルな商品スクリーニング機能を実現するjs

この記事の例では、商品スクリーニング機能を実装するためのjsの具体的なコードを参考までに共有しています。具体的な内容は次のとおりです。

応用シナリオ: 製品スクリーニング

<!DOCTYPE html>
<html lang="ja">

<ヘッド>
 <メタ文字セット="UTF-8">
 <title>ドキュメント</title>
 <スタイル タイプ="text/css">
 * {
 マージン: 0;
 パディング: 0;
 リストスタイル: なし;
 テキスト装飾: なし;
 }
 
 。選ぶ {
 幅: 500ピクセル;
 高さ: 自動;
 マージン: 自動;
 }
 
 .ナビゲーションを選択{
 高さ: 50px;
 背景色: 赤;
 }
 
 .ナビゲーションスパンを選択{
 マージン: 0 5px;
 }
 
 .choose .show {
 色: 赤;
 }
 
 .ul li {を選択します
 境界線: 1px 黒一色;
 }
 
 .choose ul li a {
 ボックスのサイズ: 境界線ボックス;
 表示: インラインブロック;
 幅: 40px;
 border-left: 1px 黒一色;
 マージン: 5px;
 左パディング: 5px;
 }
 </スタイル>
</head>

<本文>
 <div class="choose">
 <nav></nav>
 <ul>
 <li>
 <strong>モバイル:</strong>
 <a href="javascript:;">シャオミ</a>
 <a href="javascript:;">ファーウェイ</a>
 <a href="javascript:;">リンゴ</a>
 <a href="javascript:;">オッポ</a>
 <a href="javascript:;">生体</a>
 </li>
 <li>
 <strong>価格:</strong>
 <a href="javascript:;">3200</a>
 <a href="javascript:;">2600</a>
 <a href="javascript:;">899</a>
 <a href="javascript:;">2799</a>
 <a href="javascript:;">2299</a>
 </li>
 <li>
 <strong>スクリーン:</strong>
 <a href="javascript:;">399</a>
 <a href="javascript:;">600</a>
 <a href="javascript:;">800</a>
 <a href="javascript:;">1200</a>
 </li>
 </ul>
 </div>
</本文>

</html>
<script type="text/javascript">
 var li = document.querySelectorAll('li');
 var stack = []; //3種類のオプションを保存

 (var i = 0; i < li.length; i++) の場合 {
 // 処理する各 li のオプションを取得します。var options = li[i].querySelectorAll("a");
 (var j = 0; j < options.length; j++) {
 // オプションがクリックされると、クリックのカテゴリが渡されます。 // options[j].onclick = Aclick.bind(options[j], [i]); //1. クリック イベントを分離します options[j].onclick = Bclick(i); //2. クリック イベントを分離します }
 }
</スクリプト>

これを書くときに、このイベント関数を分離したいのですが、パラメータがあります。そこで問題が起こります

イベント関数をパラメータで分離するにはどうすればよいですか? ? ?

つまり、2つの方法がある

1.bindを使用してこのポインタを変更し、実行されていない関数を返します。

関数Aclick(インデックス) {
// ナビゲーションを削除
var 選択 = document.querySelector('.choose');
var nav = document.querySelector(".choose nav");
 nav 要素を選択します。

 // スタックを使用して再追加 stack[index] = this.innerHTML;
 var nav = document.createElement("nav");
 (k = 0; k < スタック長さ; k++) {
 if (stack[k] != "" && stack[k] != undefined) { // スタック内の空の項目をスキップし、再び span を nav に追加します
  var span = document.createElement("span");
  var a = document.createElement("a");
  a.innerHTML = "X";
  a.href = "javascript:void(0);";
  span.innerHTML = スタック[k];
  a.onclick = 関数() {
  スタック[インデックス] = "";
  nav.removeChild(this.parentNode);
  }
  span.appendChild(a);
  nav.appendChild(span);
 }
 }
 nav の前に選択して挿入します。
}

2. 登録関数の外側に登録関数を返す関数を追加する

関数 Bclick(インデックス) {
 関数()を返す{
 // ナビゲーションを削除
 var 選択 = document.querySelector('.choose');
 var nav = document.querySelector(".choose nav");
 nav 要素を選択します。

 // スタックを使用して再追加 stack[index] = this.innerHTML;
 var nav = document.createElement("nav");
 (k = 0; k < スタック長さ; k++) {
  if (stack[k] != "" && stack[k] != undefined) { // スタック内の空の項目をスキップし、再び span を nav に追加します
  var span = document.createElement("span");
  var a = document.createElement("a");
  a.innerHTML = "X";
  a.href = "javascript:void(0);";
  span.innerHTML = スタック[k];
  a.onclick = 関数() {
  スタック[インデックス] = "";
  nav.removeChild(this.parentNode);
  }
  span.appendChild(a);
  nav.appendChild(span);
  }
 }
 nav の前に選択して挿入します。
 }
}

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • ネイティブjsで商品スクリーニング機能を実現
  • JSが商品スクリーニング機能を実現

<<:  MySQL スロークエリ: スロークエリを有効にする

>>:  Linux で Sudo を使用して権限を委譲する

推薦する

ウェブページのテキストデザインは、服を着た賢い女の子のようであるべきだ

<br />「この世に醜い女性はいない、あるのは怠惰な女性だけだ」これは女性の美のバイブ...

MySQL のデータ型とフィールド属性の原理と使用法の詳細な説明

この記事では、MySQL のデータ型とフィールド属性について説明します。ご参考までに、詳細は以下の通...

MySQL InnoDBとMyISAMの違いを簡単に理解する

序文MySQL は、myisam、innodb、memory、archive、example など、...

MySQL 8の新機能である降順インデックスの基礎となる実装の詳細な説明

降順インデックスとは何ですか?インデックスについてはよくご存知かもしれませんが、降順インデックスにつ...

nginx サーバーでの 502 不正なゲートウェイ エラーの原因のトラブルシューティング

パブリックアカウントのファンデータを同期してバッチプッシュするときに、サーバーがエラー502を報告し...

Linux 上でプライベート Git サーバーを構築するための詳細なチュートリアル

1. サーバーのセットアップリモート リポジトリは実際にはローカル リポジトリと何ら変わりなく、純粋...

シェルで文字列内のスペースや指定された文字を削除する方法

インターネット上には、正しい方法であっても、使用しても正しい結果が得られない方法が数多くあります。正...

MySQL で 2 つのデータベース テーブル構造を比較する方法

開発およびデバッグのプロセスでは、新しいコードと古いコードの違いを比較する必要があります。比較には、...

Ubuntuはカーネルモジュールをコンパイルし、その内容はシステムログに反映されます。

目次1.Linuxログインインターフェース2. コードを書く3. Makefileを書く4. コンパ...

Vueのwatch、computed、methodsの違いのまとめ

目次1 はじめに2 基本的な使い方2.1 方法2.2 計算プロパティ2.3 リスナーを見る3 3つの...

Vueでシングルサインオンを実装する方法のまとめ

最近プロジェクトが中断され、RageFrame の研究は一時的に終了しました。この記事では、シングル...

体験したい17 404ページ

404 を避けるべきだとどうして言えるのでしょうか? その理由は、ほとんどの 404 ページが粗雑す...

Xshell を使用して VMware 上の Linux 仮想マシンに接続する (グラフィック手順)

はじめに: 最近 Hadoop プラットフォームの構築を勉強し始めたので、ローカルマシンに VMwa...

JavaScript配列の一般的なメソッドの概要

目次1. はじめに2. フィルター() 3. マップ() 4. ソート() 5. 減らす() 6. ...

jsプロジェクトでの双方向データバインディングの簡単な実装方法

目次序文パブリッシュ・サブスクライバ・パターン結果電話要約する序文双方向データ バインディングとは、...