我的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>
只要结果的字符数小于或等于该语言可以理解的最大数字,就应该采用任意数量的数字并将其相加(以及其他最终数字)。
答案 0 :(得分:0)
我不知道您的代码做什么,但是您肯定在这里有一个无限循环:
for (var i=maxChar; i>0;i--) {
if(time != i++) {
carry = 0;
}
在每次迭代中,for循环将i
减少1,但是您也将其增加1,因此它将保持相同的值,并且循环永远不会结束。我想您实际上想检查if (time != i+1)
。