4-12,麻烦老师检查一下!

来源:4-12 编程练习

脑袋瓜瓜嗡嗡的

2022-06-13 16:26:39

<!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 oOption = document.getElementsByTagName("option");
            var oSelect = document.getElementsByTagName("select")[0];
            var oDiv = document.getElementById("div");
            oSelect.onchange = function(){
                for(var i = 0;i < oOption.length;i++){
                    console.log(oOption[i].selected);
                    if(oOption[i].selected == true){     
                        if(oOption[i].value == "0"){
                            oDiv.style.backgroundColor = "white";
                            oDiv.innerText = "我没有发生任何变化";
                        }else{
                            oDiv.style.backgroundColor = oOption[i].value;
                            oDiv.innerText = "我的背景颜色变成了"+oOption[i].value+"色";
                        }
                        break;
                    }
                }
            }
        }
    </script>
</head>
<body>
        <div>
         <span>请选择您喜欢的颜色:</span>
         <select id="color" value = "yellow">
         <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回答

imooc_慕慕

2022-06-13

同学你好,代码效果是可以的,需要注意的点,题目要求通过id获取元素的方式来获取元素,同时可以优化的点,可以省去for循环,直接if判断即可,修改参考如下图:

https://img.mukewang.com/climg/62a6f9bd0918167c07330614.jpg

祝学习愉快~

0

前端工程师

前端入门如同写字,如果你不知道从哪开始,那就选择前端(含Vue3.x,React17,TS)

20327 学习 · 17877 问题

查看课程