为什么变量c会取不到select的value值

来源:3-12 编程练习

所向无一

2019-05-12 23:43:23

<!DOCTYPE html>
<html>
    <head>
    <meta charset="UTF-8">
    <title>onchange()</title>
    <style type="text/css">
     #div{
     width:300px;
     height:300px;
     border:2px solid gray;
     margin:100px  0  0 200px;
     }
    </style>
    <script type="text/javascript">
       //补充代码
       window.onload=function(){
           var a = document.getElementById('color');
           var b = document.getElementById('div');
           var c = a.value;
           a.onchange=function(){
               if(this.value==0){
                   b.innerHTML="我没有发生任何变化"
                   b.style.backgroundColor='';
               }else{
                   b.innerHTML="我的背景变成了"+a+"色";
                   b.style.backgroundColor=this.value;
               }
               
           }
       }
    </script>
</head>
<body>
        <div>
         <span>请选择您喜欢的颜色:</span>
         <select id="color">
         <option value="0">请选择</option>
         <option value="yellow">黄色</option>
         <option value="orange">橘色</option>
         <option value="pink">粉色</option>
         <option value="purple">紫色</option>
         </select>
        </div>
<div id="div">我是div</div>
 </body>
</html>


写回答

1回答

好帮手慕慕子

2019-05-13

同学你好, 直接打印c的结果为0, 获取到了select的值, 但是因为在change事件外定义的的c, 所以下拉框发生改变的时候c不会发生改变。 另, 可以直接使用this.value设置div的内容哦。 建议参考下图:

http://img.mukewang.com/climg/5cd8e8e00001636409680555.jpg

如果帮助到了你, 欢迎采纳!

祝学习愉快~~


0

0 学习 · 40143 问题

查看课程