2016-04-18 8 views
0

Iコード、変更のdivの背景色は、このような

をクリックして、私は背景色レッド、ブルー、だけでなく、グリーン、 を変更することができますが、私はボタンをリセットするためにクリックしたときに、私は、Chromeのボタンリセットでエラーが発生しました(ブラウザ): btnResetは関数ではありません。

[リセット]ボタンをクリックするとすべてのdivを空白にする方法?

function btnRed() { 
 
    document.getElementById("Div1").style.backgroundColor="Red"; 
 
} 
 
function btnGreen() { 
 
    document.getElementById("Div2").style.backgroundColor="Green"; 
 
} 
 
function btnBlue() { 
 
    document.getElementById("Div3").style.backgroundColor="Blue"; 
 
} 
 
function btnReset() { 
 
    document.getElementById("Div1").style.backgroundColor="Black"; 
 
    document.getElementById("Div2").style.backgroundColor="white"; 
 
    document.getElementById("Div3").style.backgroundColor="white"; 
 
}
#Div1 
 
{ 
 
    z-index: -2; 
 
    border: 1px solid black; 
 
    height: 300px; 
 
    width: 400px; 
 
} 
 
#Div2 
 
{ 
 
    z-index: -1; 
 
    border: 1px solid black; 
 
    width: 300px; 
 
    height: 200px; 
 
    margin: 50px 0 0 50px; 
 
} 
 
#Div3 
 
{ 
 
    border: 1px solid black; 
 
    width: 200px; 
 
    height: 150px; 
 
    margin: 23px 0 0 47px; 
 
} 
 

 
#DivBtn 
 
{ 
 
    margin-top: 30px; 
 
}
<div id="Div1"> 
 
    <div id="Div2"> 
 
    <div id="Div3"> 
 

 
    </div> 
 
    </div> 
 
</div> 
 

 
<div id="DivBtn"> <input type="button" id="btnR" value="Red" onclick="btnRed();"> &nbsp;&nbsp; 
 
    <input type="button" id="btnG" value="Green" onclick="btnGreen();">&nbsp;&nbsp; 
 
    <input type="button" id="btnB" value="Blue" onclick="btnBlue();">&nbsp;&nbsp; 
 
    <input type="button" id="btnReset" value="Reset" onclick="btnReset()"> 
 
</div>

+1

コード – dave

+0

ローカルファイルにコードを貼り付けてクロムで実行した後にリセットが壊れた – IrkenInvader

+0

check answer、リセットIDまたはリセット関数名を変更 –

答えて

3

あなたはhtmlタグでidを使用しているとき、それはidを使用した自動のvar宣言を行っているため、注意してください。だからbtnReset関数をオーバーライドしてbtnReset<input>を指しています。

解決策1:id="btnReset"またはfunction btnReset()の名前を変更してください。

解決方法2:関数が自動declarated VARが上書きされますので、ちょうど</body>終了タグの前に(文書の最後にあなたの<script>を移動

追加情報:あなたは罰金作品を掲載http://www.2ality.com/2012/08/ids-are-global.html

+0

最初の解決策は私のために働いた。体の終わり。 – IrkenInvader

+0

スミヌリ、ありがとう私の仕事は 私はこのオーバーライドについて知りません。 –

+0

あなたは@ KarmeshMadhaviを歓迎しています。私はUIのIDをもう使用していません。CSSクラスを使用する方が良いし、jsをバインドするために 'document.querySelector'が必要です。 – sminutoli

関連する問題