无法加载带有jQuery脚本的JavaScript

时间:2019-01-17 20:47:32

标签: javascript jquery html5 css3

我的jQuery脚本未加载,并且当我按下“计算”按钮时,它什么也没有(不足为奇)。我知道我已经将jQuery以硬代码复制并粘贴到了文件中。这是有意的,因为我希望文件在我正常运行时脱机运行。同样,我通常是在学校笔记本电脑上工作时创建个人控制台的,这是有意的,因为那是我感到无聊并且他们禁用了开发人员控制台的时候。

虽然不是jQuery,但没有加载;我以前可以运行它。

我已经尝试检查代码,但是对我来说它只是坏了。但是,在脚本未加载之前,我认为在某个地方存在无限循环,因为根据任务管理器,当脚本加载并按下计算按钮时,页面冻结,但CPU运行异常。我不知道是什么原因造成的,请帮忙!

我知道其他人可能已经做到了这一点,并且还有很多其他更好的方法可以做我想做的事情,所以请记住我在做这个很有趣,但是我一直在做这个在很长一段时间的空闲时间里,我什么都没找到,所以我真的很笨,或者代码已损坏,需要重写。

应该通过将限制从540亿位数增加到540亿位数来增加一种语言可以理解的最大数量的限制。但是,如总结中所述,脚本不会加载。

<span id="console"></span>
<form>
    <input type="radio" id="add" name="mathtype" checked="checked"> Addition (in devolopment)<br>
    <input type="radio" id="sub" name="mathtype"> Subtraction (Unavailible)<br>
    <input type="radio" id="multi" name="mathtype"> Multiplication (Unavailible)<br>
    <input type="radio" id="div" name="mathtype"> Division (Unavailible)
</form>
<br>
Number: <input type="text" id="input1">
<br>
Number: <input type="text" id="input2">
<br>
<span id="extraInputs"></span>
<button id="addInput">Add another input field</button>
<br>
<button id="calc">Calculate...</button>
<br>
<br>
<p id="output">Press "Calculate..."</p>

<script>/*This is where I load the jQuery*/</script>

<script>
    document.getElementById("console").innerHTML("<div class='info'>Script ran</div>");
    "use strict";
    $(document).ready(function(){
        try {
            var page = $("#console");
            var log = function(message) {
                page.append('<div class="log">'+message+'</div>');
            };
            var info = function(message) {
                page.append('<div class="info">'+message+'</div>');
            };
            var warn = function(message) {
                page.append('<div class="warn">'+message+'</div>');
            };
            var error = function(message) {
                page.append('<div class="error">'+message+'</div>');
            };
            log("Doc and console up");
        } catch(err) {
            document.getElementById("console").innerHTML("<div class='error'>ERROR WITH LAUNCHING CONSOLE.</div>");
        }

        try {
            var inputBoxes = 2;

            var add = function(num1, num2) {
                log("Running add");
                var neg = [0, false, false];

                num1 = num1.split("-");
                num2 = num2.split("-");
                log(num1);
                log(num2);

                if(num1.length == 2) {
                    num1 = num1[1];
                    neg[1] = true;
                } else {
                    num1 = num1.toString();
                }
                if (num2.length == 2) {
                    num2 = num2[1];
                    neg[2] = true;
                } else {
                    num2 = num2.toString();
                }

                log(num1);
                log(num2);
                info(neg);

                var isNeg = false;

                if(((neg[1] || neg[2]) && (neg[1]!=neg[2])) == true) {
                    isNeg = true;
                }
                log(neg);

                num1 = num1.split('');
                num2 = num2.split('');
                log(num1);
                log(num2);

                var maxChar = Math.max(num1.length, num2.length);
                log(maxChar);

                if(maxChar > num1.length) {
                    for(var i=0;i<maxChar-num1.length;i++) {
                        num1.unshift("0");
                    }
                } else if (maxChar > num2.length) {
                    for(var i=0;i<maxChar-num1.length;i++) {
                        num2.unshift("0");
                    }
                }

                var final = [];
                var time;
                var carry = 0;

                for (var i=maxChar; i>0;i--) {
                    if(time != i++) {
                        carry = 0;
                    }

                    final[i] = (parseInt(num1[i]) + parseInt(num2[i]) + parseInt(carry)).toString();

                    if(parseInt(final[i]) > 9) {
                        var temp = final[i].split('');
                        final[i] = temp[1];
                        carry = temp[0];
                        time = i;
                    }
                }

                if(isNeg){
                    final.unshift("-");
                }

                info(final.join());
                return final.join();
            };

            $("button#addInput").click(function(){
                inputBoxes++;
                $("#extraInputs").append('Number: <input type="text" id="input'+inputBoxes+'"><br>');
            });

            $("#calc").click(function(){
                info("Checking conditions...");
                if ($("#add").is(":checked")) {
                    info("Running...");
                    info($("#input1").val());
                    info($("#input2").val());

                    var final = add($("#input1").val(), $("#input2").val());
                    info("Ran");
                    if (inputBoxes > 2) {
                        info("inputBoxes: "+inputBoxes.toString());
                        for (var i=3; i<inputBoxes; i++) {
                            final = add(final, $("#input"+i.toString()).val());
                        }
                    }
                    info(final);
                    $("#output").text(final));
                }
                log("Functions up");
            });
        } catch(err) {
          error(err);
        }
    });
</script>

只要结果的字符数小于或等于该语言可以理解的最大数字,就应该采用任意数量的数字并将其相加(以及其他最终数字)。

1 个答案:

答案 0 :(得分:0)

我不知道您的代码做什么,但是您肯定在这里有一个无限循环:

for (var i=maxChar; i>0;i--) {
    if(time != i++) {
        carry = 0;
    }

在每次迭代中,for循环将i减少1,但是您也将其增加1,因此它将保持相同的值,并且循环永远不会结束。我想您实际上想检查if (time != i+1)