Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript If/else语句不起作用_Javascript_Jquery_Loops_If Statement - Fatal编程技术网

Javascript If/else语句不起作用

Javascript If/else语句不起作用,javascript,jquery,loops,if-statement,Javascript,Jquery,Loops,If Statement,我不明白为什么if/else语句没有正确执行。代码只在if(i==1)循环中运行,但仅此而已。我正在做一个简单的练习,检查提交的数字,看看用户是变热还是变冷到预设的数字 <html> <head> <title>Test</title> <script src="jquery-1.11.0.min.js"></script> <script> $(document).ready(f

我不明白为什么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>

试验
$(文档).ready(函数(){
var checkNum=Math.floor(Math.random()*10);
警报(“随机数为”+checkNum);
var i=0;
var-scopedVal;
var submitVal;
var热检查=功能(submitVal){
如果(i==1){
警惕(“重试”);
scopedVal=submitVal;
警报(“scopedVal为”+scopedVal);
}否则{
if(abs(scopedVal-checkNum)>abs(submitVal-checkNum)){
警惕(“更热”);
scopedVal=submitVal;
}否则{
警惕(“更冷”);
scopedVal=submitVal;
}
}
};
$('.subm')。在('click',函数(){
i++;
警惕(“我是”+i);
警报(“按下按钮”);
submitVal=$(this).closest('#outsideContainer').find('.num').val();
if(submitVal==checkNum){
警惕(“你明白了”);
}否则{
热检查(submitVal);
}
});
});
身体{
宽度:900px;
颜色:白色;
保证金:自动;
}
#外部容器{
宽度:400px;
颜色:灰色;
保证金:自动;
位置:相对位置;
}

提交
我假设这是一个简单的修复,它让我发疯。

如果要运行“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;
        };
    };
演示:

你还需要改变腹肌。到Math.abs

如果要运行“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;
        };
    };
演示:


你还需要改变腹肌。对于Math.abs,abs()方法不存在。您正在处理所有整数,因此您可能只需删除它或完全引用它Math.abs()

abs()方法不存在。您正在处理所有整数,因此您可能只需删除它或完全引用它Math.abs()

您必须替换

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

abs()是一种数学方法


试试看

您必须更换

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

abs()是一种数学方法


试试看

Try==而不是==。另外,如果Firebug(或控制台等)中有错误,您会遇到什么类型的错误?您是否试图在
checkNum
变量中获取一个随机数范围?如果是这样,你需要这样做
Math.floor(Math.random()*7)+1
(给你一个介于1和7之间的数字)。abs的定义在哪里?你的HTML缺少几个
@Geroy290:
===
在JavaScript中完全可以接受,你可能会把JS误认为是其他语言。试试==而不是===。另外,如果Firebug(或控制台等)中有错误,您会遇到什么类型的错误?您是否试图在
checkNum
变量中获取一个随机数范围?如果是这样,你需要这样做
Math.floor(Math.random()*7)+1
(给你一个介于1和7之间的数字)。abs定义在哪里?你的HTML缺少一些
@Geroy290:
===
在JavaScript中完全可以接受,你可能把JS误认为是其他语言。谢谢,if代码不是问题所在,但Math.abs是导致此问题的原因。不知何故,我忽略了这个简单的错误。没问题,请始终检查控制台是否有错误:)如果您的问题得到了回答,请选择“已回答”。谢谢,如果代码不是问题所在,但Math.abs是导致此问题的原因。不知何故,我忽略了这个简单的错误。没问题,请始终检查控制台是否有错误:)如果您的问题得到了回答,请选择“已回答”。