2016-09-12 72 views
-1

第一部分工作。当我按+时,它可以工作。 +后没有任何工作。我按下加号,第二组按钮出现,但按下它们什么也不做。顺便说一下,我正在制作一个计算器。第一个按钮工作,第二个不要

<html> 
<head> 
<title> 
JavaScript 
</title> 
</head> 
<body> 
<script> 
var first = "" 
document.write('<button onclick="one()">1</button>'); 
document.write('<button onclick="two()">2</button><br/>'); 
document.write('<button onclick="three()">3</button>'); 
document.write('<button onclick="four()">4</button><br/>'); 
document.write('<button onclick="five()">5</button>'); 
document.write('<button onclick="six()">6</button><br/>'); 
document.write('<button onclick="seven()">7</button>'); 
document.write('<button onclick="eight()">8</button><br/>'); 
document.write('<button onclick="nine()">9</button>'); 
document.write('<button onclick="zero()">0</button><br/>'); 
document.write('<button onclick="add()">+</button><br/>'); 
function one(){ 
first = first + "1"; 
} 
function two(){ 
first = first + "2"; 
} 
function three(){ 
first = first + "3"; 
} 
function four(){ 
first = first + "4"; 
} 
function five(){ 
first = first + "5"; 
} 
function six(){ 
first = first + "6"; 
} 
function seven(){ 
first = first + "7"; 
} 
function eight(){ 
first = first + "8"; 
} 
function nine(){ 
first = first + "9"; 
} 
function zero(){ 
first = first + "0"; 
} 
function add(){ 
document.body.innerHTML = ''; 
var second = "" 
document.write('<button onclick="one()">1</button>'); 
document.write('<button onclick="two()">2</button><br/>'); 
document.write('<button onclick="three()">3</button>'); 
document.write('<button onclick="four()">4</button><br/>'); 
document.write('<button onclick="five()">5</button>'); 
document.write('<button onclick="six()">6</button><br/>'); 
document.write('<button onclick="seven()">7</button>'); 
document.write('<button onclick="eight()">8</button><br/>'); 
document.write('<button onclick="nine()">9</button>'); 
document.write('<button onclick="zero()">0</button><br/>'); 
document.write('<button onclick="equal()">=</button><br/>'); 
function one(){ 
second = second + "1"; 
} 
function two(){ 
second = second + "2"; 
} 
function three(){ 
second = second + "3"; 
} 
function four(){ 
second = second + "4"; 
} 
function five(){ 
second = second + "5"; 
} 
function six(){ 
second = second + "6"; 
} 
function seven(){ 
second = second + "7"; 
} 
function eight(){ 
second = second + "8"; 
} 
function nine(){ 
second = second + "9"; 
} 
function zero(){ 
second = second + "0"; 
} 
function equal(){ 
first = Math.floor; 
second = Math.floor; 
answer = first + second; 
document.write(answer); 
} 
} 
</script> 
</body> 
</html> 
+1

20世纪90年代,他们希望自己的Javascript回来。不要使用'document.write()',学习如何使用DOM修改函数。 – Barmar

回答

0

你有没有跟你原来的解决方案的问题是,在第二计算器的功能是在add()函数的私人范围,但HTML <button> s为在全球范围内,所以没有他们可以通过这种方式访问​​函数以将数字添加到“第二个”变量中。

这里是你的代码,有两套功能在全球范围内

<html> 
 
<head> 
 
<title> 
 
JavaScript 
 
</title> 
 
</head> 
 
<body> 
 
<script> 
 

 
first = "" 
 
document.write('<button onclick="first_one()">1</button>'); 
 
document.write('<button onclick="first_two()">2</button>'); 
 
document.write('<button onclick="first_three()">3</button>'); 
 
document.write('<button onclick="first_four()">4</button>'); 
 
document.write('<button onclick="first_five()">5</button>'); 
 
document.write('<button onclick="first_six()">6</button>'); 
 
document.write('<button onclick="first_seven()">7</button>'); 
 
document.write('<button onclick="first_eight()">8</button>'); 
 
document.write('<button onclick="first_nine()">9</button>'); 
 
document.write('<button onclick="first_zero()">0</button>'); 
 
document.write('<button onclick="first_add()">+</button>'); 
 

 
function first_one(){ 
 
first = first + "1"; 
 
} 
 
function first_two(){ 
 
first = first + "2"; 
 
} 
 
function first_three(){ 
 
first = first + "3"; 
 
} 
 
function first_four(){ 
 
first = first + "4"; 
 
} 
 
function first_five(){ 
 
first = first + "5"; 
 
} 
 
function first_six(){ 
 
first = first + "6"; 
 
} 
 
function first_seven(){ 
 
first = first + "7"; 
 
} 
 
function first_eight(){ 
 
first = first + "8"; 
 
} 
 
function first_nine(){ 
 
first = first + "9"; 
 
} 
 
function first_zero(){ 
 
first = first + "0"; 
 
} 
 

 
function first_add() { 
 

 
second = "" 
 

 
document.write('<button onclick="second_one()">1</button>'); 
 
document.write('<button onclick="second_two()">2</button><br/>'); 
 
document.write('<button onclick="second_three()">3</button>'); 
 
document.write('<button onclick="second_four()">4</button><br/>'); 
 
document.write('<button onclick="second_five()">5</button>'); 
 
document.write('<button onclick="second_six()">6</button><br/>'); 
 
document.write('<button onclick="second_seven()">7</button>'); 
 
document.write('<button onclick="second_eight()">8</button><br/>'); 
 
document.write('<button onclick="second_nine()">9</button>'); 
 
document.write('<button onclick="second_zero()">0</button><br/>'); 
 
document.write('<button onclick="second_equal()">=</button><br/>'); 
 

 
} 
 

 
function second_one(){ 
 
second = second + "1"; 
 
} 
 
function second_two(){ 
 
second = second + "2"; 
 
} 
 
function second_three(){ 
 
second = second + "3"; 
 
} 
 
function second_four(){ 
 
second = second + "4"; 
 
} 
 
function second_five(){ 
 
second = second + "5"; 
 
} 
 
function second_six(){ 
 
second = second + "6"; 
 
} 
 
function second_seven(){ 
 
second = second + "7"; 
 
} 
 
function second_eight(){ 
 
second = second + "8"; 
 
} 
 
function second_nine(){ 
 
second = second + "9"; 
 
} 
 
function second_zero(){ 
 
second = second + "0"; 
 
} 
 

 
function second_equal(){ 
 
document.write((parseInt(first) + parseInt(second)).toString()); 
 
} 
 
</script> 
 
</body> 
 
</html>

+0

这很好,我在函数内部声明函数。现在有道理。 –

0

嘿看看这项工作。

<script> 
var data =""; 
var first = ""; 
var sum = ""; 
document.write('<button onclick="one()">1</button>'); 
document.write('<button onclick="two()">2</button><br/>'); 
document.write('<button onclick="three()">3</button>'); 
document.write('<button onclick="four()">4</button><br/>'); 
document.write('<button onclick="five()">5</button>'); 
document.write('<button onclick="six()">6</button><br/>'); 
document.write('<button onclick="seven()">7</button>'); 
document.write('<button onclick="eight()">8</button><br/>'); 
document.write('<button onclick="nine()">9</button>'); 
document.write('<button onclick="zero()">0</button><br/>'); 
document.write('<button onclick="add()">+</button>'); 
document.write('<button onclick="equal()">=</button><br/>'); 
document.write('<div id =\"sum\"> </div><br/>'); 
function one(){ 
data = data + "1"; 
} 
function two(){ 
data = data + "2"; 
} 
function three(){ 
data = data + "3"; 
} 
function four(){ 
data = data + "4"; 
} 
function five(){ 
data = data + "5"; 
} 
function six(){ 
data = data + "6"; 
} 
function seven(){ 
data = data + "7"; 
} 
function eight(){ 
data = data + "8"; 
} 
function nine(){ 
data = data + "9"; 
} 
function zero(){ 
data = data + "0"; 
} 
function add(){ 
first = data; 
data= ""; 
} 

function equal(){ 
sum = parseInt(first) + parseInt(data); 



//document.getElementById("sum").remove(); 
document.getElementById("sum").innerHTML = sum ; 

     data =""; 
    first = ""; 
sum = ""; 
} 




</script> 
0

您的代码示例有几个问题。那是在标记有线

  • 方法需要在窗口,从而定义当你点击任意数量的点击+后,所有的方法指向的附加功能之外定义功能

  • 此外,您在add()中重新定义方法的方式只能在add的函数范围内使用,它们不覆盖全局定义的方法,但是当您在add方法内部访问它们时(不在document.write中) ,他们会指向add函数中的方法。

  • Math.floor是一种方法,需要参数。 Math.Floor

相关问题