如何通过点击javascript更改背景颜色?

时间:2016-09-07 20:26:14

标签: javascript

我只是编程新手,这是我第一次尝试学习新东西。我无法解决我的代码有什么问题,因为它不想工作。我只需要点击div来改变bg颜色。如果您删除第一行代码直到"功能",但仅在上载页面时,它可以工作。



document.getElementById("trying").onclick = function(){
				var someText = document.getElementById("textArea").value;
				document.getElementById("randomText").innerHTML = someText;
			}
				document.getElementById("mainBox").onclick =
				function getRandomColor() {
                
                var letters = '0123456789ABCDEF'.split('');
    
                var color = '#';
    
                for (var i = 0; i < 6; i++ ) {
        
                    color += letters[Math.floor(Math.random() * 16)];
    
                }
    
                return color;

            }
			 document.getElementById("mainBox").style.backgroundColor = getRandomColor();
&#13;
.mainBox {
				width: 400px;
				height:350px;
				background-color:pink;
				margin-right:auto;
				margin-left:auto;
			}
			#textArea {
				margin-left:100px;
			}
&#13;
<div id="mainBox" class="mainBox">
				<p id="randomText" align="center">U know who you are?</p>
					<input type="text" id="textArea">
					<button id="trying">Try it!</button>
				</div>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:2)

设置onClick处理程序的方式是错误的。

&#13;
&#13;
document.getElementById("trying").onclick = function(){
    var someText = document.getElementById("textArea").value;
    document.getElementById("randomText").innerHTML = someText;
}

function getRandomColor() {                
    var letters = '0123456789ABCDEF'.split('');
    var color = '#';
    
    for (var i = 0; i < 6; i++ ) {    
        color += letters[Math.floor(Math.random() * 16)];
    }
    
    return color;
}

document.getElementById("mainBox").onclick = function() {
  document.getElementById("mainBox").style.backgroundColor = getRandomColor();
}
&#13;
.mainBox {
				width: 400px;
				height:350px;
				background-color:pink;
				margin-right:auto;
				margin-left:auto;
			}
			#textArea {
				margin-left:100px;
			}
&#13;
<div id="mainBox" class="mainBox">
				<p id="randomText" align="center">U know who you are?</p>
					<input type="text" id="textArea">
					<button id="trying">Try it!</button>
				</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

我注意到你将所有代码放在一个地方分开了。如果你不坚持封装,你可能会遇到很多麻烦。分开你的代码,事情对你来说会容易得多。你只是错过了一个支架,也试着更清楚地形成你的答案以避免被投票;)。另外,我们你必须修改你的代码,以便单词不会消失,我会让你自己解决这个问题。

Simple way to understand Encapsulation and Abstraction

http://codepen.io/psikosen/pen/RGPkAv

html
<div id="mainBox" class="mainBox">
                <p id="randomText" align="center">U know who you are?</p>
                    <input type="text" id="textArea">
                    <button id="trying">Try it!</button>
                </div>
css
 .mainBox {
                width: 400px;
                height:350px;
                background-color:pink;
                margin-right:auto;
                margin-left:auto;
            }
            #textArea {
                margin-left:100px;
            }


Js
document.getElementById("trying").onclick = function(){
    var someText = document.getElementById("textArea").value;
    document.getElementById("randomText").innerHTML = someText;
}
document.getElementById("mainBox").onclick = function() {
  document.getElementById("mainBox").style.backgroundColor = getRandomColor();

function getRandomColor(){

    var letters = '0123456789ABCDEF'.split('');

                var color = '#';

                for (var i = 0; i < 6; i++ ) {

                    color += letters[Math.floor(Math.random() * 16)];

                }

                return color;
}

}