2016-02-20 110 views
1

我目前在学习如何编写代码,而且我在使用jQuery时遇到了一些困难。我试图通过我正在做的这个课程来做这个计算器作为一个项目,我碰到了一个碰撞。我不知道如何解决我的代码问题:一个问题是操作不能正常工作,也没有数字。我试着按照教程,并决定使用不同的按钮来玩弄它,但我没有得到期望的结果。这些数字应显示在整个部分,操作员应该给出数学结果。建立一个基本的计算器

你可以看到我的HTML,jQuery的完整的代码和JavaScript这里 http://codepen.io/IrvingG/pen/adRrvW

$(document).ready(function() { 
    var testNumLength = function(number) { 
if (number.length > 9) { 
    totaldiv.text(number.substr(number.length - 9, 9)); 
    if (number.length > 15) { 
    number = ""; 
    totaldiv.text("Err"); 
    } 
} 
}; 
var number = ""; 
var newnumber = ""; 
var operator = ""; 
var totaldiv = $("#results"); 
totaldiv.text("0"); 

$(".numbers button").not("#operators, #equals, #clear").click(function() { 
    number += this.html(); 
    totaldiv.text(number); 
    testNumLength.text(number); 
    }); 
$("#operators").click(function() { 
    operator += this.html(); 
    newnumber = number; 
    number = ""; 
    totaldiv.text("0"); 
    }); 

$("#clear, #clear1").click(function() { 
    number = ""; 
    totaldiv.text("0"); 
    if ($(this).attr("id") === "#clear") { 
    newnumber = ";" 
    } 
}); 

$("#equals").click(function(){ 
    if (operator === "+"){ 
    number = (parseInt(number, 10) + parseInt(number, 10).toString(10)); 
    } else if (operator === "-"){ 
    number = (parseInt(number, 10) - parseInt(number, 10).toString(10)); 
} else if (operator === "/"){ 
    number = (parseInt(number, 10)/parseInt(number, 10).toString(10)); 
} else if (operator === "*"){ 
    number = (parseInt(number, 10) * parseInt(number, 10).toString(10)); 
} 

totaldiv.text(number); 
testNumLength(number); 
number=""; 
newnumber=""; 
}); 

});

+0

右此行之后:编号+ = this.html();添加console.log(typeof number);并看看结果。你真的获得数字,或只是字符串? – Amir

+0

谢谢!我会试试这个。 – riv

回答

0

下面是代码Calculator

$(document).ready(function() { 
    var testNumLength = function(number) { 
if (number.length > 9) { 
    totaldiv.text(number.substr(number.length - 9, 9)); 
    if (number.length > 15) { 
    number = ""; 
    totaldiv.text("Err"); 
    } 
} 
}; 
var result; 
var number = ""; 
var newnumber = ""; 
var operator = ""; 
var totaldiv = $("#results"); 
totaldiv.text("0"); 

$(".numbers button").not(".operator,#equals ,#clear").click(function() { 
    number += $(this).html(); 

    totaldiv.text(number); 
    testNumLength(number); 

    }); 
$(".operator").click(function() { 
    operator = $(this).html(); 

    newnumber = number; 
    number = ""; 
    totaldiv.text("0"); 

    }); 

$("#clear, #clear1").click(function() { 
    number = ""; 
    totaldiv.text("0"); 
    if ($(this).attr("id") === "#clear") { 
    newnumber = ";"; 
    } 
}); 

$("#equals").click(function(){ 
    if (operator === "+"){ 
    result=parseInt(newnumber, 10) + parseInt(number, 10); 
    number = result.toString(10); 

    } else if (operator === "-"){ 
    result=parseInt(newnumber, 10) - parseInt(number, 10); 

    number = result.toString(10); 
} else if (operator === "/"){ 
    result=parseInt(newnumber, 10)/parseInt(number, 10); 
    number = result.toString(10); 
} else if (operator === "*"){ 
result=parseInt(newnumber, 10) * parseInt(number, 10); 
    number = result.toString(10); 
} 

totaldiv.text(number); 
testNumLength(number); 
number=""; 
newnumber=""; 
}); 
}); 
+0

非常感谢你,我正在浏览代码,看看有什么不同,这对我有很大的帮助。 – riv