【问题标题】:HTML5 JavaScript counting script not workingHTML5 JavaScript 计数脚本不起作用
【发布时间】:2017-10-04 00:51:23
【问题描述】:

不太确定为什么我的脚本不起作用我没有看到任何错误,如果有人能给我一些关于出了什么问题的见解,那就太好了。 我不确定引导程序是否存在干扰,因为我可以让它在没有应用 css 或引导程序的纯 html 中工作。

 <!DOCTYPE html>
    <html lang="en">
        <head>
            <title>Pizza Menue</title>
            <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
            <meta content="width=device-width,initial-scale=1.0" name="viewport">
            <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
            <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin="anonymous">   </head>
        <body>  
            <div class="container">
                <div class="jumbotron jumbotron-fluid bg-danger">
                    <div class="container align-center">
                        <h1 class="display-2 text-center bold"><p class="text-light">Pure Pizza</p></h1>
                    </div>
                </div>
                <div class="container">
                    <button type="button" id="btnorder" class="btn btn-secondary btn-lg btn-block btn-danger" onclick="getReceipt()">Place Order By Clicking Here!</button>
                </div>
                <div class="container m-3">
                    <h3>Pizza Size</h3>
                    <div class="btn-group" data-toggle="buttons">
                        <label class="btn btn-secondary active">
                            <input class="size" type="radio" name="size" value="Personal Pizza" autocomplete="off" checked>Personal Pizza
                        </label>
                        <label class="btn btn-secondary">
                            <input class="size" type="radio" name="size" value="Medium Pizza" autocomplete="off">Medium Pizza
                        </label>
                        <label class="btn btn-secondary">
                            <input class="size" type="radio" name="size" value="Large Pizza" autocomplete="off">Large Pizza
                        </label>
                        <label class="btn btn-secondary">
                            <input class="size" type="radio" name="size" value="Extra Large Pizza" autocomplete="off">Extra Large Pizza
                        </label>
                    </div>
                </div>
                <div class="container">
                            <div class="container m-3">
                                <h3>Meats</h3>
                                <div class="form-check">
                                    <label class="form-check-label">
                                    <input class="form-check-input" type="checkbox" name="meats" value="Pepperoni">
                                    Pepperoni
                                    </label>
                                </div>
                                <div class="form-check">
                                    <label class="form-check-label">
                                    <input class="form-check-input meats" type="checkbox" name="meats" value="Canadina Bacon" >
                                    Canadian Baon
                                    </label>
                                </div>
                                <div class="form-check">
                                    <label class="form-check-label">
                                    <input class="form-check-input meats" type="checkbox" name="meats" value="Ground Beef">
                                    Ground Beef
                                    </label>
                                </div>
                                <div class="form-check ">
                                    <label class="form-check-label">
                                    <input class="form-check-input meats" type="checkbox" name="meats" value="Anchovy" >
                                    Anchovies
                                    </label>
                                </div>
                                <div class="form-check ">
                                    <label class="form-check-label">
                                    <input class="form-check-input meats" type="checkbox" name="meats" value="Chicken" >
                                    Chicken
                                    </label>
                                </div>
                                <div class="form-check ">
                                    <label class="form-check-label">
                                    <input class="form-check-input meats" type="checkbox" name="meats" value="Sausage" >
                                    Sausage
                                    </label>
                                </div>
                            </div>
                <div class="container">
                    <div id="showText"></div>
                    <div id="totalPrice"></div>
                </div>
            </div>
            <script src="./js/js.js"></script>
            <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
            <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script>
            <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js" integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1" crossorigin="anonymous"></script>
        </body>
    </html>

这是与 html 一起出现的脚本,我已经三次检查它是否正确链接并且所有内容都正确拼写,所以我很茫然,无法弄清楚发生了什么。

    function getReceipt() {
        var text1 = "<h3>You Ordered:</h3>;
        var runningTotal = 0;
        var sizeTotal = 0;
        var sizeArray = document.getElementsByClassName("size");
        }
        for (var i = 0; i < sizeArray.length; i++) {
            if (sizeArray[i].checked) {
                var selectedSize = sizeArray[i].value;
                text1 = text1+selectedSize+"<br>";
            }
        }
        if (selectedSize === "Personal Pizza") {
            sizeTotal = 6;
        } else if (selectedSize === "Medium Pizza") {
            sizeTotal = 10;
        } else if (selectedSize === "Large Pizza") {
            sizeTotal = 14;
        } else if (selectedSize === "Extra Large Pizza") {
            sizeTotal = 16;
        } 
        runningTotal = sizeTotal;
        console.log(selectedSize+" = $"+sizeTotal+".00");
        console.log("size text1: "+text1);
        console.log("subtotal: $"+runningTotal+".00");
        getMeat(runningTotal,text1); // All three of these variables will be passed on to each function
    };


    function getMeat(runningTotal,text1) {
        var meatTotal = 0;
        var selectedMeat = [];
        var meatArray = document.getElementsByClassName("meats");
        for (var j = 0; j < meatArray.length; j++) {
    if (meatArray[j].checked) {
        selectedMeat.push(meatArray[j].value);
        console.log("selected meat item: ("+meatArray[j].value+")");
        text1 = text1+meatArray[j].value+"<br>";
        }
    }
    var meatCount = selectedMeat.length;
        if (meatCount > 1) {
            meatTotal = (meatCount - 1);
            } else {
            meatTotal = 0;
        }   

【问题讨论】:

  • 查看您帖子中格式化、突出显示的代码。 . .缺少什么? (记录了任何控制台错误吗?)
  • “不起作用”是什么意思?请明确点。请阅读:stackoverflow.com/help/mcve

标签: javascript html bootstrap-4


【解决方案1】:

您的 text 变量字符串没有右双引号。

改变: var text1 = "&lt;h3&gt;You Ordered:&lt;/h3&gt;;

到: var text1 = "&lt;h3&gt;You Ordered:&lt;/h3&gt;";

【讨论】:

    【解决方案2】:

    编辑您的 JavaScript。在第 2 行添加缺少的双引号 ("),并将第 6 行的右大括号 (}) 移动到脚本的最底部。

    function getReceipt() {
        var text1 = "<h3>You Ordered:</h3>"; // <-- add this "
        var runningTotal = 0;
        var sizeTotal = 0;
        var sizeArray = document.getElementsByClassName("size");
        //}  <-- delete this }
        for (var i = 0; i < sizeArray.length; i++) {
            if (sizeArray[i].checked) {
                var selectedSize = sizeArray[i].value;
                text1 = text1 + selectedSize + "<br>";
            }
        }
        if (selectedSize === "Personal Pizza") {
            sizeTotal = 6;
        } else if (selectedSize === "Medium Pizza") {
            sizeTotal = 10;
        } else if (selectedSize === "Large Pizza") {
            sizeTotal = 14;
        } else if (selectedSize === "Extra Large Pizza") {
            sizeTotal = 16;
        }
        runningTotal = sizeTotal;
        console.log(selectedSize + " = $" + sizeTotal + ".00");
        console.log("size text1: " + text1);
        console.log("subtotal: $" + runningTotal + ".00");
        getMeat(runningTotal, text1); // All three of these variables will be passed on to each function
    };
    
    
    function getMeat(runningTotal, text1) {
        var meatTotal = 0;
        var selectedMeat = [];
        var meatArray = document.getElementsByClassName("meats");
        for (var j = 0; j < meatArray.length; j++) {
            if (meatArray[j].checked) {
                selectedMeat.push(meatArray[j].value);
                console.log("selected meat item: (" + meatArray[j].value + ")");
                text1 = text1 + meatArray[j].value + "<br>";
            }
        }
        var meatCount = selectedMeat.length;
        if (meatCount > 1) {
            meatTotal = (meatCount - 1);
        } else {
            meatTotal = 0;
        }
    } // <-- add this }
    <!DOCTYPE html>
        <html lang="en">
            <head>
                <title>Pizza Menue</title>
                <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
                <meta content="width=device-width,initial-scale=1.0" name="viewport">
                <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
                <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin="anonymous">   </head>
            <body>  
                <div class="container">
                    <div class="jumbotron jumbotron-fluid bg-danger">
                        <div class="container align-center">
                            <h1 class="display-2 text-center bold"><p class="text-light">Pure Pizza</p></h1>
                        </div>
                    </div>
                    <div class="container">
                        <button type="button" id="btnorder" class="btn btn-secondary btn-lg btn-block btn-danger" onclick="getReceipt()">Place Order By Clicking Here!</button>
                    </div>
                    <div class="container m-3">
                        <h3>Pizza Size</h3>
                        <div class="btn-group" data-toggle="buttons">
                            <label class="btn btn-secondary active">
                                <input class="size" type="radio" name="size" value="Personal Pizza" autocomplete="off" checked>Personal Pizza
                            </label>
                            <label class="btn btn-secondary">
                                <input class="size" type="radio" name="size" value="Medium Pizza" autocomplete="off">Medium Pizza
                            </label>
                            <label class="btn btn-secondary">
                                <input class="size" type="radio" name="size" value="Large Pizza" autocomplete="off">Large Pizza
                            </label>
                            <label class="btn btn-secondary">
                                <input class="size" type="radio" name="size" value="Extra Large Pizza" autocomplete="off">Extra Large Pizza
                            </label>
                        </div>
                    </div>
                    <div class="container">
                                <div class="container m-3">
                                    <h3>Meats</h3>
                                    <div class="form-check">
                                        <label class="form-check-label">
                                        <input class="form-check-input" type="checkbox" name="meats" value="Pepperoni">
                                        Pepperoni
                                        </label>
                                    </div>
                                    <div class="form-check">
                                        <label class="form-check-label">
                                        <input class="form-check-input meats" type="checkbox" name="meats" value="Canadina Bacon" >
                                        Canadian Baon
                                        </label>
                                    </div>
                                    <div class="form-check">
                                        <label class="form-check-label">
                                        <input class="form-check-input meats" type="checkbox" name="meats" value="Ground Beef">
                                        Ground Beef
                                        </label>
                                    </div>
                                    <div class="form-check ">
                                        <label class="form-check-label">
                                        <input class="form-check-input meats" type="checkbox" name="meats" value="Anchovy" >
                                        Anchovies
                                        </label>
                                    </div>
                                    <div class="form-check ">
                                        <label class="form-check-label">
                                        <input class="form-check-input meats" type="checkbox" name="meats" value="Chicken" >
                                        Chicken
                                        </label>
                                    </div>
                                    <div class="form-check ">
                                        <label class="form-check-label">
                                        <input class="form-check-input meats" type="checkbox" name="meats" value="Sausage" >
                                        Sausage
                                        </label>
                                    </div>
                                </div>
                    <div class="container">
                        <div id="showText"></div>
                        <div id="totalPrice"></div>
                    </div>
                </div>
                <script src="./js/js.js"></script>
                <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
                <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script>
                <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js" integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1" crossorigin="anonymous"></script>
            </body>
        </html>

    【讨论】:

      猜你喜欢
      • 2023-03-18
      • 2014-06-29
      • 2011-05-11
      • 1970-01-01
      • 2021-10-12
      • 2015-10-08
      • 1970-01-01
      • 2012-11-07
      • 2014-11-22
      相关资源
      最近更新 更多