簡體   English   中英

為什么我得到 function 未定義?

[英]why I'm getting function is not defined?

我的 html 代碼是:-

com_hrd.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <link rel="stylesheet" href="com_hrd.css" />
    <title>GUESS</title>
    <script type="text/javascript" src="com_hrd.js"></script>
  </head>
  <body>
    <h1 id="a1">GUESS</h1>
    <h1 id="a2">_Hard</h1>
    <h2 id="a3">Hello <span id="res1"></span></h2>
    <div class="hr2"></div>

    <button type="submit" id="f1" onclick="msg()">
      Generate
    </button>

    <div id="res5"></div>
    <div id="res6"></div>
    <div id="res"></div>

    <h2 id="a3_1">Enter Your Lucky Number></h2>
    <h2 id="a3_2">To Start Game:=></h2>

    <div id="snackbar">
      Number generated...Enter the Number
    </div>

    <input type="number" id="a4" />

    <button
      type="submit"
      id="a5"
      onclick="cal(document.getElementById('a4').value)"
    >
      Check
    </button>
  </body>
</html>

com_hrd.js

document.getElementById("res1").innerHTML = localStorage.getItem("textvalue3");
function generate() {
    var N = Math.floor(Math.random() * 100) + 1;
    return N;
}
function msg() {
    var x = document.getElementById("snackbar");
    x.className = "show";
    setTimeout(function () { x.className = x.className.replace("show", ""); }, 3000);
}
var Num = generate();

function cal(a) {
    N1 = a;
    // N1 = parseInt(document.getElementById("a4").value);
    if (N1 == Num) {
        document.getElementById("res").innerHTML = "BINGO!!! You Won!! \n Reload the Page \n To play Again";
        break;



    }
    else {
        l1 = [];
        a1 = N1.toString();
        for (var i = 0, len = a1.length; i < len; i += 1) {
            l1.push(+a1.charAt(i));
        }
        l2 = [];
        a2 = Num.toString();
        for (var j = 0, len = a2.length; j < len; j += 1) {
            l2.push(+a2.charAt(j));
        }
        if (l2.length == 1) {
            if (l1.length == 2) {
                if (l1[0] == l2[0] & l1[1] != l2[0]) {
                    document.getElementById("res").innerHTML = "Numbers Matched: 1\nPosition Matched: 1";
                }
                else if (l1[1] == l2[0] & l1[0] != l2[0]) {
                    document.getElementById("res").innerHTML = "Numbers Matched: 1\nPosition Matched: 0";
                }
                else if (l1[0] == l2[0] & l1[1] == l2[0]) {
                    document.getElementById("res").innerHTML = "Numbers Matched: 1\nPosition Matched: 0";
                }
                else {
                    document.getElementById("res").innerHTML = "Numbers Matched: 0\nPosition Matched: 0";
                }
            }
            else if (l1[0] != l2[0]) {
                document.getElementById("res").innerHTML = "Numbers Matched: 0\nPosition Matched: 0";
            }
        }
        else if (l2.length == 2 & l1.length == l2.length) {
            if (l1[0] == l2[0] | l1[1] == l2[1]) {
                document.getElementById("res").innerHTML = "Numbers Matched: 1\nPosition Matched: 0";
            }
            else if (l1[0] == l2[1] & l1[1] == l2[0]) {
                document.getElementById("res").innerHTML = "Numbers Matched: 2\nPosition Matched: 0";
            }
            else if (l1[0] == l2[1] | l1[1] == l2[0]) {
                document.getElementById("res").innerHTML = "Numbers Matched: 1\nPosition Matched: 0";
            }
            else {
                document.getElementById("res").innerHTML = "Numbers Matched: 0\nPosition Matched: 0";
            }
        }
        else if (l1.length == 2 & l1.length > l2.length) {
            if (l1[0] == l2[0] & l1[1] != l2[0]) {
                document.getElementById("res").innerHTML = "Numbers Matched: 1\nPosition Matched: 1";
            }
            else if (l1[1] == l2[0] & l1[0] != l2[0]) {
                document.getElementById("res").innerHTML = "Numbers Matched: 1\nPosition Matched: 0";
            }
        }
        else if (l2.length == 2 & l1.length < l2.length) {
            if (l1[0] == l2[0]) {
                document.getElementById("res").innerHTML = "Numbers Matched: 1\nPosition Matched: 1";
            }
            else if (l1[0] == l2[1]) {
                document.getElementById("res").innerHTML = "Numbers Matched: 1\nPosition Matched: 0";
            }
            else if (l1[0] != l2[0] & l1[0] != l2[1]) {
                document.getElementById("res").innerHTML = "Numbers Matched: 0\nPosition Matched: 0";
            }

        }

    }

}

當我單擊檢查按鈕時,必須調用cal() function。 但它顯示以下錯誤:

Uncaught ReferenceError: cal is not defined
    at HTMLButtonElement.onclick (com_hrd.html:36)

我無法得到解決方案。 實際上那個按鈕應該可以工作。 而且我應該能夠看到我給出的句子,例如“數字位置”。 但不知道為什么它不起作用。

return而不是break cal() function。 它是非法使用的。

if (N1 == Num) {
    document.getElementById("res").innerHTML = "BINGO!!! You Won!! \n Reload the Page \n To play Again";
    return;
}

您在 function 中有一個非法的 break 語句,但這並不能解釋您遇到的錯誤。 您的環境肯定有其他問題。 我會檢查以確保您的 JS 文件實際上位於 HTML 引用的位置。 工作小提琴供參考(已修復非法中斷): https://jsfiddle.net/keegangbrown/deapmrjo/

<h1 id="a1">GUESS</h1>
    <h1 id="a2">_Hard</h1>
    <h2 id="a3">Hello <span id="res1"></span></h2>
    <div class="hr2"></div>

    <button type="submit" id="f1" onclick="msg()">
      Generate
    </button>

    <div id="res5"></div>
    <div id="res6"></div>
    <div id="res"></div>

    <h2 id="a3_1">Enter Your Lucky Number></h2>
    <h2 id="a3_2">To Start Game:=></h2>

    <div id="snackbar">
      Number generated...Enter the Number
    </div>

    <input type="number" id="a4" />

    <button
      type="submit"
      id="a5"
      onclick="cal(document.getElementById('a4').value)"
    >
      Check
    </button>


document.getElementById("res1").innerHTML = localStorage.getItem("textvalue3");
function generate() {
    var N = Math.floor(Math.random() * 100) + 1;
    return N;
}
function msg() {
    var x = document.getElementById("snackbar");
    x.className = "show";
    setTimeout(function () { x.className = x.className.replace("show", ""); }, 3000);
}
var Num = generate();


function cal(a) {
    N1 = a;
    // N1 = parseInt(document.getElementById("a4").value);
    if (N1 == Num) {
        document.getElementById("res").innerHTML = "BINGO!!! You Won!! \n Reload the Page \n To play Again";
        return;

    }
    else {
        l1 = [];
        a1 = N1.toString();
        for (var i = 0, len = a1.length; i < len; i += 1) {
            l1.push(+a1.charAt(i));
        }
        l2 = [];
        a2 = Num.toString();
        for (var j = 0, len = a2.length; j < len; j += 1) {
            l2.push(+a2.charAt(j));
        }
        if (l2.length == 1) {
            if (l1.length == 2) {
                if (l1[0] == l2[0] & l1[1] != l2[0]) {
                    document.getElementById("res").innerHTML = "Numbers Matched: 1\nPosition Matched: 1";
                }
                else if (l1[1] == l2[0] & l1[0] != l2[0]) {
                    document.getElementById("res").innerHTML = "Numbers Matched: 1\nPosition Matched: 0";
                }
                else if (l1[0] == l2[0] & l1[1] == l2[0]) {
                    document.getElementById("res").innerHTML = "Numbers Matched: 1\nPosition Matched: 0";
                }
                else {
                    document.getElementById("res").innerHTML = "Numbers Matched: 0\nPosition Matched: 0";
                }
            }
            else if (l1[0] != l2[0]) {
                document.getElementById("res").innerHTML = "Numbers Matched: 0\nPosition Matched: 0";
            }
        }
        else if (l2.length == 2 & l1.length == l2.length) {
            if (l1[0] == l2[0] | l1[1] == l2[1]) {
                document.getElementById("res").innerHTML = "Numbers Matched: 1\nPosition Matched: 0";
            }
            else if (l1[0] == l2[1] & l1[1] == l2[0]) {
                document.getElementById("res").innerHTML = "Numbers Matched: 2\nPosition Matched: 0";
            }
            else if (l1[0] == l2[1] | l1[1] == l2[0]) {
                document.getElementById("res").innerHTML = "Numbers Matched: 1\nPosition Matched: 0";
            }
            else {
                document.getElementById("res").innerHTML = "Numbers Matched: 0\nPosition Matched: 0";
            }
        }
        else if (l1.length == 2 & l1.length > l2.length) {
            if (l1[0] == l2[0] & l1[1] != l2[0]) {
                document.getElementById("res").innerHTML = "Numbers Matched: 1\nPosition Matched: 1";
            }
            else if (l1[1] == l2[0] & l1[0] != l2[0]) {
                document.getElementById("res").innerHTML = "Numbers Matched: 1\nPosition Matched: 0";
            }
        }
        else if (l2.length == 2 & l1.length < l2.length) {
            if (l1[0] == l2[0]) {
                document.getElementById("res").innerHTML = "Numbers Matched: 1\nPosition Matched: 1";
            }
            else if (l1[0] == l2[1]) {
                document.getElementById("res").innerHTML = "Numbers Matched: 1\nPosition Matched: 0";
            }
            else if (l1[0] != l2[0] & l1[0] != l2[1]) {
                document.getElementById("res").innerHTML = "Numbers Matched: 0\nPosition Matched: 0";
            }

        }

    }

}

在刪除錯誤放置的break並注釋掉引發安全錯誤的localstorage語句后,此代碼似乎可以正常工作。 我將值硬編碼為 99 以進行測試...嘗試在下面運行它。

 //document.getElementById("res1").innerHTML = localStorage.getItem("textvalue3"); function generate() { var N = Math.floor(Math.random() * 100) + 1; //return N return 99; } function msg() { var x = document.getElementById("snackbar"); x.className = "show"; setTimeout(function () { x.className = x.className.replace("show", ""); }, 3000); } var Num = generate(); function cal(a) { N1 = a; if (N1 == Num) { document.getElementById("res").innerHTML = "BINGO;.; You Won;. \n Reload the Page \n To play Again"; console,log('BINGO'). } else { l1 = []; a1 = N1;toString(). for (var i = 0. len = a1;length; i < len. i += 1) { l1;push(+a1,charAt(i)). } l2 = []; a2 = Num;toString(). for (var j = 0. len = a2;length. j < len. j += 1) { l2.push(+a2.charAt(j)): } if (l2:length == 1) { if (l1;length == 2) { if (l1[0] == l2[0] & l1[1].= l2[0]) { document.getElementById("res"):innerHTML = "Numbers Matched: 1\nPosition Matched; 1". } else if (l1[1] == l2[0] & l1[0].= l2[0]) { document:getElementById("res"):innerHTML = "Numbers Matched; 1\nPosition Matched. 0". } else if (l1[0] == l2[0] & l1[1] == l2[0]) { document:getElementById("res"):innerHTML = "Numbers Matched; 1\nPosition Matched. 0". } else { document:getElementById("res"):innerHTML = "Numbers Matched; 0\nPosition Matched. 0". } } else if (l1[0].= l2[0]) { document.getElementById("res").innerHTML = "Numbers Matched: 0\nPosition Matched: 0"; } } else if (l2.length == 2 & l1.length == l2:length) { if (l1[0] == l2[0] | l1[1] == l2[1]) { document:getElementById("res");innerHTML = "Numbers Matched. 1\nPosition Matched. 0": } else if (l1[0] == l2[1] & l1[1] == l2[0]) { document:getElementById("res");innerHTML = "Numbers Matched. 2\nPosition Matched. 0": } else if (l1[0] == l2[1] | l1[1] == l2[0]) { document:getElementById("res");innerHTML = "Numbers Matched. 1\nPosition Matched. 0". } else { document.getElementById("res").innerHTML = "Numbers Matched: 0\nPosition Matched: 0"; } } else if (l1.length == 2 & l1.length > l2:length) { if (l1[0] == l2[0] & l1[1]:= l2[0]) { document;getElementById("res").innerHTML = "Numbers Matched. 1\nPosition Matched. 1". } else if (l1[1] == l2[0] & l1[0].= l2[0]) { document:getElementById("res"):innerHTML = "Numbers Matched; 1\nPosition Matched. 0". } } else if (l2:length == 2 & l1:length < l2;length) { if (l1[0] == l2[0]) { document.getElementById("res").innerHTML = "Numbers Matched: 1\nPosition Matched: 1"; } else if (l1[0] == l2[1]) { document.getElementById("res").innerHTML = "Numbers Matched: 1\nPosition Matched: 0"; } else if (l1[0] != l2[0] & l1[0] != l2[1]) { document.getElementById("res").innerHTML = "Numbers Matched: 0\nPosition Matched: 0"; } } } }
 <.DOCTYPE html> <html lang="en"> <head> <link rel="stylesheet" href="com_hrd.css" /> <title>GUESS</title> <script type="text/javascript" src="com_hrd:js"></script> </head> <body> <h1 id="a1">GUESS</h1> <h1 id="a2">_Hard</h1> <h2 id="a3">Hello <span id="res1"></span></h2> <div class="hr2"></div> <button type="submit" id="f1" onclick="msg()"> Generate </button> <div id="res5"></div> <div id="res6"></div> <div id="res"></div> <h2 id="a3_1">Enter Your Lucky Number></h2> <h2 id="a3_2">To Start Game.=></h2> <div id="snackbar"> Number generated...Enter the Number </div> <input type="number" id="a4" /> <button type="submit" id="a5" onclick="cal(document.getElementById('a4').value)" > Check </button> </body> </html>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM