JavaScriptを使用してショッピングカートのチェックアウトを実装する方法

藏色散人
リリース: 2021-07-03 10:12:57
オリジナル
3378 人が閲覧しました

ショッピング カート決済を実装する JavaScript メソッド: 1. ページが読み込まれた後に関数を実行します; 2. 要素を取得します; 3. プラスとマイナスのボタンを設定します; 4. 添え字を保存します; 5.プラス記号とマイナス記号のクリック イベント ; 6. チェック ボックスの状態変更イベントを作成します。

JavaScriptを使用してショッピングカートのチェックアウトを実装する方法

この記事の動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。

JavaScriptでショッピングカート決済を実装するにはどうすればよいですか?

JavaScriptを使用してショッピングカートのチェックアウトを実装する方法

HTML コード:

  • 0

    10

    小计:

  • 0

    20

    小计:

  • 0

    30

    小计:

  • 0

    40

    小计:

  • 0

    50

    小计:

商品总计: 0

商品总价: 0

CSS代码: html,body,ul,p { margin:0; padding:0; } ul,li { list-style:none; } ul { width:450px; } li { display:flex; justify-content:space-around; } .sum { width:450px; display:flex; justify-content:space-around; } #container { width:450px; margin:100px auto; }
ログイン後にコピー

JS コード:

// 1.页面加载后执行
window.onload = function() {
    // 2.获取元素
    var liCheck = document.getElementsByName("liCheck"); //li里面的复选框
    var decrease = document.getElementsByClassName("decrease"); //减号
    var piece = document.getElementsByClassName("piece"); //件数
    var increase = document.getElementsByClassName("increase"); //加号
    var price = document.getElementsByClassName("price"); //单价
    var smallPrice = document.getElementsByClassName("smallPrice"); //小计
    var checkAll = document.getElementById("checkAll"); //全选复选框
    var totalCount = document.getElementById("totalCount"); //总计
    var totalPrice = document.getElementById("totalPrice"); //总价
    // 3.加减按钮
    for (var i = 0; i < decrease.length; i++) {
        // 4.另存下标
        decrease[i].index = i;
        increase[i].index = i;
        liCheck[i].index = i;
        // 5.减号的点击事件
        decrease[i].onclick = function() {
            // 5-1.判断件数是否大于0
            if (piece[this.index].innerHTML <= 1) {
                this.disabled = true; //当件数小于等于0时, 将减号按钮禁用
            }
            // 5-1-1.当前件数-1
            piece[this.index].innerHTML--;
            // 5-1-2.计算小计
            smallPrice[this.index].value = Number(smallPrice[this.index].value) - Number(price[this.index].innerHTML);
            // 6-4.如果当前条目是被选中状态, 则需要将该商品计入总计和总价
            if (liCheck[this.index].checked) { //选中
                totalCount.innerHTML--;
                totalPrice.innerHTML = Number(totalPrice.innerHTML) - Number(price[this.index].innerHTML);
            }
        }
        // 6.加号的点击事件
        increase[i].onclick = function() {
            // 6-1.将对应的减号解禁
            decrease[this.index].disabled = false;
            // 6-2.当前件数+1
            piece[this.index].innerHTML++;
            // 6-3.计算小计
            smallPrice[this.index].value = Number(smallPrice[this.index].value) + Number(price[this.index].innerHTML);
            // 6-4.如果当前条目是被选中状态, 则需要将该商品计入总计和总价
            if (liCheck[this.index].checked) { //选中
                totalCount.innerHTML++;
                totalPrice.innerHTML = Number(totalPrice.innerHTML) + Number(price[this.index].innerHTML);
            }
        }
        // 7.复选框的状态改变事件
        var count = 0; //存储选中个数
        liCheck[i].onchange = function() {
            // 7-1.判断是否选中
            if (this.checked) { //选中状态
                count++;
                totalCount.innerHTML = Number(totalCount.innerHTML) + Number(piece[this.index].innerHTML); //总计加当前件数
                totalPrice.innerHTML = Number(totalPrice.innerHTML) + Number(smallPrice[this.index].value); //总计加当前件数
                // 7-1-1. 判断选中个数是否与复选框个数一致
            } else { //取消选中状态
                count--;
                totalCount.innerHTML = Number(totalCount.innerHTML) - Number(piece[this.index].innerHTML); //总计加当前件数
                totalPrice.innerHTML = Number(totalPrice.innerHTML) - Number(smallPrice[this.index].value); //总计加当前件数
            }
            count == liCheck.length ? checkAll.checked = true : checkAll.checked = false;
        }
    }
    // 8.全选复选框
    checkAll.onchange = function() {
        totalCount.innerHTML = 0; //总计置为0
        totalPrice.innerHTML = 0; //总价置为0
        for (var j = 0; j < liCheck.length; j++) {
            // 8-1. 将li里面的复选框与全选状态保持一致
            liCheck[j].checked = this.checked;
            // 8-2. 判断是否全选
            if (this.checked) {
                count = liCheck.length;
                totalCount.innerHTML = Number(totalCount.innerHTML) + Number(piece[j].innerHTML);
                totalPrice.innerHTML = Number(totalPrice.innerHTML) + Number(smallPrice[j].value);
            } else {
                count = 0;
            }
        }
    }
}
ログイン後にコピー

推奨学習: 「javascript Advanced Tutorial

以上がJavaScriptを使用してショッピングカートのチェックアウトを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!