<!DOCTYPE html>
<body>
<div id="content">
<form name="calc">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script id="NumberButtons">
$(document).ready(function(){
$('#button1').click(function(){
$('#output').val($(this).val());
});
$('#button2').click(function(){
$('#output').val($(this).val());
});
$('#button3').click(function(){
$('#output').val($(this).val());
});
$('#button4').click(function(){
$('#output').val($(this).val());
});
$('#button5').click(function(){
$('#output').val($(this).val());
});
$('#button6').click(function(){
$('#output').val($(this).val());
});
$('#button7').click(function(){
$('#output').val($(this).val());
});
$('#button8').click(function(){
$('#output').val($(this).val());
});
$('#button9').click(function(){
$('#output').val($(this).val());
});
$('#button0').click(function(){
$('#output').val($(this).val());
});
$('#buttonclear').click(function(){
$('#output').val($(this).val());
});
});
</script>
<script id="MathSymbolButtons">
var alpha = 0;
var bravo = 0;
var charlie = 0;
$(document).ready(function(){
$('#buttonplus').click(function(){
var alpha = $("#output").val();
window.alert(alpha)
});
$('#buttonequals').click(function(){
var bravo = $("#output").val();
window.alert(bravo)
var charlie = alpha + bravo;
$('#output').val($(charlie).val());
});
});
</script>
<table>
<tr>
<td>
<input type="text" id="output">
<br>
</td>
</tr>
<tr>
<td>
<input type="button" name="one" value = "1" id="button1">
<input type = "button" name = "two" value = "2" id="button2" >
<input type = "button" name = "three" value = "3" id="button3">
<input type = "button" name = "four" value = "4"id="button4">
<input type = "button" name = "five" value = "5" id="button5">
<input type = "button" name = "six" value = "6" id="button6">
<input type = "button" name = "seven" value = "7" id="button7">
<input type = "button" name = "eight" value = "8" id="button8">
<input type = "button" name = "nine" value = "9" id="button9">
<input type = "button" name = "zero" value = "0" id="button0">
<input type = "button" name = "add" value = "+" id="buttonplus">
<input type = "button" name = "evaluate" value = " = " id="buttonequals">
<br>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
答案 0 :(得分:2)
查理不是一个元素,它是一个变量,所以:
$('#output').val(charlie);
或原生:
document.getElementById( 'output' ).value = charlie;
答案 1 :(得分:1)
这是您当前的代码:
var alpha = 0;
var bravo = 0;
var charlie = 0;
$('#buttonplus').click(function(){
var alpha = $("#output").val();
});
$('#buttonequals').click(function(){
var bravo = $("#output").val();
var charlie = alpha + bravo;
$('#output').val($(charlie).val());
});
这些是全局变量:
var alpha = 0;
var bravo = 0;
var charlie = 0;
但是您要在click
处理程序中创建新的局部变量:
$('#buttonplus').click(function(){
var alpha = $("#output").val();
});
删除var
以访问全局变量:
$('#buttonplus').click(function(){
alpha = $("#output").val();
});
<小时/> 此代码将
#output
的字符串表示分配给alpha:
alpha = $("#output").val();
如果alpha
为2且bravo
为3,则alpha + bravo
为23
。
您可以通过添加一个加号来强制转换为数字:
alpha = +$("#output").val();
<小时/> 最后,而不是:
$('#output').val($(charlie).val());
......这样做:
$('#output').val(charlie);
更正后的代码:
var alpha = 0;
var bravo = 0;
var charlie = 0;
$('#buttonplus').click(function(){
alpha = +$("#output").val();
});
$('#buttonequals').click(function(){
bravo = +$("#output").val();
charlie = alpha + bravo;
$('#output').val(charlie);
});
答案 2 :(得分:0)
试试这个:
$('#buttonplus').click(function(){
alpha = $("#output").val();
//window.alert(alpha)
});
$('#buttonequals').click(function(){
bravo = $("#output").val();
//window.alert(bravo)
charlie = alpha * 1 + bravo * 1;
$('#output').val(charlie);
});
答案 3 :(得分:0)
有很多问题:
这是一个有效的jsFiddle:http://jsfiddle.net/khsm7s0s/
你两次声明了几个变量。 您需要强制将字符串作为数字,以便添加它们。 您通过在其上放置一个jQuery包装器将charlie视为DOM元素。
var alpha = 0;
var bravo = 0;
var charlie = 0;
$(document).ready(function () {
$('#buttonplus').click(function () {
alpha = $("#output").val();
});
$('#buttonequals').click(function () {
bravo = $("#output").val();
charlie = Number(alpha) + Number(bravo);
$('#output').val(charlie);
});
});
答案 4 :(得分:0)
首先,$().val()
用于提取文档元素(例如文本框)的值,但您的变量charlie
已经是一个字符串,所以它没有意义做$(charlie).val()
排在第二位,因为它们是字符串,alpha + bravo
将连接它们,所以在这种情况下,2 + 3将是23而不是5,为了正确加总它们必须将它们转换为{{{ 1}}或parseInt(alpha)
在第三位,在javascript中,你的变量是函数作用域,这意味着如果你做
alpha * 1
你的变量alpha只会存在于该函数中,如果你想从外面访问它你需要做什么
$('#buttonplus').click(function(){
var alpha = $("#output").val();
});
否则alpha将未定义
最后一个注意事项是请不要省略var,以下代码将起作用,但这是一种可怕的做法
var alpha;
$('#buttonplus').click(function(){
alpha = $("#output").val();
});
在这种情况下,alpha是一个全局变量,如果你的页面由几个文件组成,alpha也将在其他文件中定义,甚至可能与另一个文件中的另一个alpha变量共存!
所以这里是我刚才所说的工作小提琴