用javascript更改div颜色

时间:2013-10-29 18:38:22

标签: javascript html

 <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>      

嗨!我正在尝试用js更改div的背景颜色,但它没有检测到所选值,正如我在parragraph上打印时看到的那样。我已经在多个页面中看到了这个程序,它对我来说看起来是一样的,但它实际上对我的代码不起作用。你能看到任何错误吗? 谢谢!

4 个答案:

答案 0 :(得分:8)

  1. 关闭option代码。
  2. 使用document.getElementById('bgcolor').value
  3. 不要忘记在每个break中添加case,否则每次都会以绿色div结束。
  4. case条件使用字符串。
  5. 修订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;
        }
    }
    

    这个working fiddle总结了它。

答案 1 :(得分:0)

此外,在每一个或最后一个将是您将看到的开关案例之后需要一个break语句,在本例中为green。 http://www.w3schools.com/js/js_switch.asp

答案 2 :(得分:0)

<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>

答案 3 :(得分:0)

<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>