jQueryはショッピングカートの完全な機能を実現します

jQueryはショッピングカートの完全な機能を実現します

この記事では、ショッピングカートの完全な機能を実現するためのjQueryの具体的なコードを参考までに共有します。具体的な内容は次のとおりです。

効果画像:

HTML&CSS:

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

<ヘッド>
 <メタ文字セット="UTF-8">
 <meta name="viewport" content="width=デバイス幅、初期スケール=1.0">
 <title>ドキュメント</title>
 <script src="../jquery-3.4.1.min.js"></script>
 <スタイル>
  * {
   マージン: 0;
   パディング: 0;
  }
  
  .タブ{
   幅: 500ピクセル;
   境界線の折りたたみ: 折りたたみ;
   マージン: 0 自動;
  }
  
  .tab td、
  番目 {
   境界線: 1px実線 #000;
  }
  
  .タブ .num {
   幅: 20px;
  }
  
  .tab .add、
  .sub {
   幅: 20px;
  }
  
  。現在 {
   背景色: ピンク;
  }
 </スタイル>
</head>

<本文>
 <テーブルクラス="tab">
  <頭>
   <th>すべて選択<input type="checkbox" name="" value="" class="checkAll">
    <input type="チェックボックス" name="" value="" class="checkAll">
   </th>
   <th>製品名</th>
   <th>単価</th>
   <th>数量</th>
   <th>小計</th>
   <th>オペレーション</th>
  </thead>
  <t本文>
   <tr>
    <td><input type="checkbox" class="ed" /></td>
    <td>コンピューター</td>
    <td class="price">¥200.20</td>
    <td>
     <button type="button" class="sub">-</button>
     <入力タイプ="テキスト" 名前="" 値="1" クラス="数値">
     <button type="button" class="add">+</button>
    </td>
    <td class="small_total">200.20円</td>
    <td class="delete">削除</td>
   </tr>
   <tr>
    <td><input type="checkbox" class="ed" /></td>
    <td>携帯電話</td>
    <td class="price">¥100.30</td>
    <td>
     <button type="button" class="sub">-</button>
     <入力タイプ="テキスト" 名前="" 値="1" クラス="数値">
     <button type="button" class="add">+</button>
    </td>
    <td class="small_total">¥100.30</td>
    <td class="delete">削除</td>
   </tr>
   <tr>
    <td><input type="checkbox" class="ed" /></td>
    <td>エアコン</td>
    <td class="price">¥1000.99</td>
    <td>
     <button type="button" class="sub">-</button>
     <入力タイプ="テキスト" 名前="" 値="1" クラス="数値">
     <button type="button" class="add">+</button>
    </td>
    <td class="small_total">¥1000.99</td>
    <td class="delete">削除</td>
   </tr>
  </tbody>
 </テーブル>
 <div>
  <span><span style="color: red;" class="num_sum">1</span> 個のアイテムが選択されました</span>
  <span>合計:</span>
  <span class="sum" style="color: red;">0</span>
  <div><span style="color: red;" class="delSome">選択した商品を削除します</span>
   <span style="color: red;" class="delAll">ショッピングカートが空です</span>
  </div>
 </div>
 </本文>

</html>

JS:

// 内部の 3 つの小さなチェック ボタンの選択状態は、[すべて選択] ボタンに従います // チェックはチェックボックスの固有のプロパティであるため、prop() を使用してこのプロパティを取得および設定します $(function() {
   合計を取得します。
   $(".checkAll").change(関数() {
     // console.log($(this).prop("checked"));//すべて選択ボタンのステータス$(".ed,.checkAll").prop("checked", $(this).prop("checked"));
     合計を取得します。
     ($(".ed,.checkAll").prop("チェック済み")) の場合 {
      //すべて選択されている場合は、すべての製品にクラス名(背景色)を追加します
      $(".tab tbody").children().addClass("current");
     } それ以外 {
      $(".tab tbody").children().removeClass("current");
     }
    })
    // すべての小さなボタンが選択されている場合は、[すべて選択] ボタンが選択されます。小さなボタンが選択されていない場合は、[すべて選択] ボタンは選択されません。 //: チェックされたセレクター、選択されたフォーム要素を検索します $(".ed").change(function() {
    // console.log($(".ed:checked").length);// チェックされた小さなチェックボックスの数// console.log($(".ed").length);
    //console.log($(this).prop("チェック済み"));
    ($(".ed:checked").length === $(".ed").length) の場合 {
     $(".checkAll").prop("チェック済み", true);
    } それ以外 {
     $(".checkAll").prop("チェック済み", false);
    }
    合計を取得します。
    $(this).prop("チェック済み") の場合 {
     $(this).parents("tr").addClass("current");
    } それ以外 {
     $(this).parents("tr").removeClass("current");
    }
   })

   $(".add").click(function() {
    n = parseInt($(this).siblings(".num").val()); とします。
    //コンソールログ(n);
    n++;
    $(this).siblings(".num").val(n);
    price = $(this).parent().siblings(".price").html() とします。
    価格 = 価格.substr(1);
    //console.log(価格);
    $(this).parent().siblings(".small_total").text("¥" + (n * price).toFixed(2));
    合計を取得します。
   })
   $(".sub").click(function() {
     n = parseInt($(this).siblings(".num").val()); とします。
     //コンソールログ(n);
     (n === 1)の場合{
      false を返します。
     }
     n--;
     $(this).siblings(".num").val(n);
     price = $(this).parent().siblings(".price").html() とします。
     価格 = 価格.substr(1);
     //console.log(価格);
     $(this).parent().siblings(".small_total").text("¥" + (n * price).toFixed(2));
     合計を取得します。
    })
    //ユーザーはnum形式で値を直接変更することもできます(小さなバグ)。同じ方法で小計を計算します$(".num").change(function() {
    n = $(this).val() とします。
    price = $(this).parent().siblings(".price").html() とします。
    価格 = 価格.substr(1);
    $(this).parent().siblings(".small_total").text("¥" + (n * price).toFixed(2));
    合計を取得します。
   })

   関数 getSum() {
    let count = 0; //アイテムの合計数を計算 let money = 0; //合計金額を計算 $(".num").each(function(index) {
     ($(".ed").eq(index).prop("checked") == true) の場合 {
      count += parseInt($(".num").eq(index).val());
      お金 += parseFloat($(".small_total").eq(index).text().substr(1));
     }
    })
    $(".num_sum").html(カウント);
    $(".sum").html(money.toFixed(2));
   }

   //製品モジュールの削除 //現在の製品を削除するには削除をクリックするので、$(this) $(".delete").click(function() { から開始します。
     //現在の項目を削除します$(this).parent().remove();
     変更する
     合計を取得します。
     すべてクリアチェック();
    })
    //選択した商品を削除します。小さなチェックボックスが選択されている場合は、対応する商品を削除します。$(".delSome").click(function() {
     //選択した項目を削除します$(".ed:checked").parent().parent().remove();
     合計を取得します。
     すべてクリアチェック();
    })
    // ショッピングカートをクリアする $(".delAll").click(function() {
    $(".tab tbody").empty();
    合計を取得します。
    すべてクリアチェック();
   })

   関数 clearCheckAll() {
    $(".tab tbody")[0].innerText == '' の場合
     $(".checkAll").prop("チェック済み", false);
    }
   }
})

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

以下もご興味があるかもしれません:
  • jQuery を使用したショッピングカートの実装
  • jQueryはショッピングカートの基本機能を実装します
  • jQueryはショッピングカートの合計価格計算と合計価格転送機能を実装します
  • jQueryはすべてのショッピングカート機能を実装します

<<:  jQueryはアコーディオン効果を実装します

>>:  オブジェクト内のフィールドを削除する js メソッド

推薦する

Linux での syslogd および syslog.conf ファイルの解釈

1: syslog.conf の概要異なるタイプの Unix の場合、標準の UnixLog システ...

Linux でスワップ領域を確認する 5 つのコマンドの概要

序文Linux では、スワップ パーティションとスワップ ファイルの 2 種類のスワップ領域を作成で...

大規模な Vue.js プロジェクトの構築と維持のための 10 のベスト プラクティス

目次1. スロットを使用してコンポーネントを理解しやすくし、より強力にする2. Vuexストアを正し...

IDEA は Docker プラグインを使用します (初心者向けチュートリアル)

目次例示する1. Dockerリモートアクセスを有効にする2. Dockerに接続する3. イメージ...

MySQL 8.0.13 のインストールと設定方法のグラフィックチュートリアル (Win10 の場合)

MySQL 8.0.13 のインストールと設定方法を皆さんと共有したいと思います。お役に立てれば幸...

ウェブページ内のFlash SWFファイルを変更する方法

これは多くの人が遭遇した問題だと思います。実際、Web ページから FLASH をダウンロードして修...

ECMAscript の新機能の紹介

目次1. 関数パラメータのデフォルト値1.1 関数パラメータのデフォルト値の指定1.2 分離割り当て...

MySQL データベース グループ クエリの group by ステートメントの詳細な説明

1: グループ化関数の記述順序 1 選択 ... 2 から ... 3 どこで ... 4 グループ...

MySQL のロックとトランザクションの簡単な分析

MySQL 自体はファイルシステムに基づいて開発されましたが、ロックの存在が異なります。データベース...

分散監視システムZabbixはSNMPとJMXチャネルを使用してデータを収集します

前回の記事では、Zabbix のパッシブ、アクティブ、Web 監視に関するトピックについて学習しまし...

Vueがビデオアップロード機能を実装

この記事では、参考までに、ビデオアップロード機能を実現するためのVueの具体的なコードを紹介します。...

nginx+FastDFS を使ってファイル管理システムを段階的に構築する

目次1. FastDFS の概要1. はじめに2. FastDFSストレージ戦略3. FastDFS...

Vueはキャンバスを使用して画像圧縮アップロードを実現します

この記事では、キャンバスを使用して画像圧縮アップロードを実現するVueの具体的なコードを参考までに共...

ユニークインデックスの S ロックと X ロックによる MySQL デッドロック ルーチンの理解

「初心者向けソースコードからの MySQL デッドロック問題の理解」では、MySQL ソースコードを...

WeChatアプレットは水平および垂直スクロールを実現

この記事の例では、WeChatアプレットの水平スクロールと垂直スクロールを実現するための具体的なコー...