2016-09-12 22 views
-1

最初のセクションが機能します。私が+を押すと、動作します。 +の後には何もしません。プラスを押すと2番目のボタンが表示されますが、押しても何もしません。ちなみに、私は電卓を作っています。無最初のボタンが機能し、2番目のボタンは機能しません

<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

1990年代に呼ばれた彼らは、彼らのJavascriptを元に戻します。 'document.write()'を使わず、DOM変更関数の使い方を学んでください。 – Barmar

答えて

0

あなたは元の溶液としていた問題は、第二の計算は関数が追加()関数のプライベートスコープにあったということでしたが、HTML <button> sがグローバルスコープであり、そうでしたあなたの「第2の」変数に数値を追加する関数にアクセスするための方法です。

は、ここでは、この作品ならばちょっと見

<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

関連する問題