为啥这个代码实现不了呢??不知道哪儿出现了问题

为啥这个代码实现不了呢??不知道哪儿出现了问题

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Document</title>
</head>
<body>
<p>
   请选择菜单:
   <select id="menu">
       <option>请选择</option>
       <option value="fruit" class="fri">水果</option>
       <option value="cake" class="fri">蛋糕</option>
       <option value="nuts" class="fri">坚果</option>
   </select>
</p>
<p>该系列有:<span class="dropdown"></span></p>
<script>
   // 此处写代码
   var btn=document.querySelector(".fri");
   var drop=document.querySelector(".dropdown");
   for(i=0;i<btn.length;i++){
       btn[i].onclick=function () {
           switch (this.value) {
               case "fruit":f1();
                   break;
               case "cake":f();
                   break;
               case "nuts":f2();
                   break;
           }
       }
   }
   //fruit.onclick=f1;
   //cake.onclick=f;
   //nuts.onclick=f2;
   function f(){
       drop.innerHTML="奶酪,甜品";
   }
   function f1(){
       drop.innerHTML="苹果,香蕉";
   }
   function f2(){
       drop.innerHTML="碧根果";
   }

</script>
</body>
</html>

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕慕子 2019-10-24 09:57:26

同学你好, this指向的是select元素, 但是this.value获取的是选中的option选项的value值, 这个可以理解为是语法规定, 我们记住即可

可以在onchange事件中打印this查看打印结果

http://img1.sycdn.imooc.com//climg/5db1046e093d072c05440411.jpg

打印结果, this指向select元素,但是this.value值是opation标签上value值哦

http://img1.sycdn.imooc.com//climg/5db1048e09940a8f03910082.jpg

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

祝学习愉快~~~~

好帮手慕慕子 2019-10-23 14:25:33

同学你好, 因为select下拉框有点特殊,他的下拉列表项无法监听到点击事件,所以不需要使用for循环绑定onclick事件。直接在select元素上绑定onchange事件监听下拉选项的变化即可,this.value指向的就是当前选择的option的value值。示例:

http://img1.sycdn.imooc.com//climg/5daff00c096351df12040956.jpg

同学可以结合代码,自己下去在测试一下哦

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

祝学习愉快~~~~

  • 提问者 慕勒8294007 #1
    This为啥指option?而不是指select呢?
    2019-10-24 08:36:42
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码