簡體   English   中英

如果/其他語句不起作用

[英]If/else statements not functioning

我無法弄清楚為什么if / else語句無法正確執行。 該代碼僅通過if(i === 1)循環運行,僅此而已。 我正在做一個簡單的練習,其中我檢查提交的數字,並查看用戶是變熱還是變冷到預設數字。

<html>
<head>
    <title>Test</title>
    <script src="jquery-1.11.0.min.js"></script>
    <script>
    $(document).ready(function () {
        var checkNum = Math.floor(Math.random() * 10);
        alert("Random number is" + checkNum);
        var i = 0;
        var scopedVal;
        var submitVal;
        var hotCheck = function (submitVal) {
            if(i === 1) {
                alert("try again");
                scopedVal = submitVal;
                alert("scopedVal is" + scopedVal);
            } else {
                if(abs(scopedVal - checkNum) > abs(submitVal - checkNum)) {
                    alert("Hotter");
                    scopedVal = submitVal;
                } else {
                    alert("colder");
                    scopedVal = submitVal;
                }
            }
        };
        $('.subm').on('click', function () {
            i++;
            alert(" i is" + i);
            alert("button pressed");
            submitVal = $(this).closest('#outsideContainer').find('.num').val();
            if(submitVal === checkNum) {
                alert("You got it");
            } else {
                hotCheck(submitVal);
            }
        });
    });
    </script>
    <style>
    body {
        width: 900px;
        color: white;
        margin: auto;
    }
    #outsideContainer {
        width: 400px;
        color: grey;
        margin: auto;
        position: relative;
    }
    </style>
</head>
<body>
    <div id="outsideContainer">
        <form>
            <input type="text" name="text" class="num">
            <br/>
        </form>
        <div id="buttonSubm">
            <button class="subm">Submit</button>
            <div></div>
</body>
</html>

我假設這是一個簡單的解決方法,並且讓我發瘋。

如果要運行“ else”代碼以及“ if”代碼,請刪除else語句:

    var hotCheck = function(submitVal){
        if(i===1){ 
            console.log("try again");
            scopedVal = submitVal;
            console.log("scopedVal is " + scopedVal);
        };
        if(Math.abs(scopedVal-checkNum)> Math.abs(submitVal - checkNum)){
            console.log("Hotter");
            scopedVal = submitVal;
        } else {
            console.log("colder");
            scopedVal = submitVal;
        };
    };

演示: http//jsfiddle.net/hHC88/

您還需要更改吸收。 到Math.abs

abs()方法不存在。 您正在處理所有整數,因此您可以將其刪除或完全引用Math.abs()

您必須更換

if( abs(scopedVal-checkNum)> abs(submitVal - checkNum)){ 

if( Math.abs(scopedVal-checkNum) > Math.abs(submitVal - checkNum)){

abs()是Math的一種方法。

試試這個

暫無
暫無

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

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