Html 使用javascript更改div颜色
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/19666535/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Change div color with javascript
提问by Alvaro Gomez
<div id="change" style="height:20px; width:100%; position: absolute; float:bottom; background-color:#000000">
</div> <br>
<select name="bgcolor" id="bgcolor" onchange="colorDiv()">
<option class="1" value=1> Grey
<option class="2" value=2> White
<option class="3" value=3> Blue
<option class="4" value=4> Cian
<option class="5" value=5> Green
</select> <br><br>
<p id="demo"></p>
<script>
function colorDiv(){
var selection = document.getElementById('bgcolor');
var div = document.getElementById( 'change' );
div.style.backgroundColor='green';
document.getElementById("demo").innerHTML =selection;
switch (selection){
case 1:
div.style.backgroundColor='grey';
case 2:
div.style.backgroundColor='white';
case 3:
div.style.backgroundColor='blue';
case 4:
div.style.backgroundColor='cian';
case 5:
div.style.backgroundColor='green';
}
</script>
Hi! I'm trying to change the background color of a div with js but it doesnt detect good the selected value, as i see when printing it on the parragraph. I've seen in multiple pages the procedure and it looks the same for me, but it actually does not work on my code. Can you see any mistakes? Thanks!!
你好!我正在尝试使用 js 更改 div 的背景颜色,但它没有检测到选定的值,正如我在段落上打印时看到的那样。我已经在多个页面中看到了该过程,它对我来说看起来是一样的,但它实际上不适用于我的代码。你能看出任何错误吗?谢谢!!
回答by Artyom Neustroev
- Close your
option
tags. - Use
document.getElementById('bgcolor').value
- Don't forget to put
break
in eachcase
or you will end up with greendiv
everytime. - Use strings for your
case
conditions.
- 关闭你的
option
标签。 - 用
document.getElementById('bgcolor').value
- 不要忘记把
break
每一个都放进去,case
否则你div
每次都会得到绿色。 - 根据您的
case
条件使用字符串。
Amended Javascript:
修改后的Javascript:
function colorDiv() {
var selection = document.getElementById('bgcolor').value;
var div = document.getElementById('change');
div.style.backgroundColor = 'green';
document.getElementById("demo").innerHTML = selection;
switch (selection) {
case "1":
div.style.backgroundColor = 'grey';
break;
case "2":
div.style.backgroundColor = 'white';
break;
case "3":
div.style.backgroundColor = 'blue';
break;
case "4":
div.style.backgroundColor = 'cian';
break;
case "5":
div.style.backgroundColor = 'green';
break;
}
}
This working fiddlesums it up.
这个工作小提琴总结了它。
回答by MJSalinas
Also, the switch cases need a break statement after each one or the last one will be the one that you will see, in this case green. http://www.w3schools.com/js/js_switch.asp
此外,switch case 需要在每一个之后都有一个 break 语句,或者最后一个将是您将看到的,在这种情况下是绿色的。http://www.w3schools.com/js/js_switch.asp
回答by gasp
<div id="change" style="height:20px; background-color:#000000">
change
</div>
<select name="bgcolor" id="bgcolor" onchange="colorDiv()">
<option class="1" value="0"> Grey</option>
<option class="2" value="1"> White </option>
<option class="3" value="2"> Blue</option>
<option class="4" value="3"> Cian</option>
<option class="5" value="4"> Green</option>
</select>
<p id="demo"></p>
<script>
function colorDiv(){
var selection = document.getElementById('bgcolor').selectedIndex;
var div = document.getElementById('change');
div.style.backgroundColor='green';
var colors = ["grey","white","blue","cian","green"];
document.getElementById("demo").innerHTML = colors[selection];
switch (selection){
case 0:
div.style.backgroundColor='grey';
break;
case 1:
div.style.backgroundColor='white';
break;
case 2:
div.style.backgroundColor='blue';
break;
case 3:
div.style.backgroundColor='cian';
break;
case 4:
div.style.backgroundColor='green';
break;
default:
div.style.backgroundColor='purple';
}
};
</script>
回答by Roshan Ahirwar
<html>
<body>
<button onclick="myFunction()">Try it</button>
<div style="width:100px; height:100px; float:left;border:1px solid #000;" id="demo"></div>
<script>
function myFunction() {
var latters = 'ABCDEF1234567890'.split("");
var color = '#';
for (var i=0; i < 6; i++)
{
color+=latters[Math.floor(Math.random() * 16)];
}
document.getElementById("demo").style.background = color ;
}
</script>
</body>
</html>