为了账号安全,请及时绑定邮箱和手机立即绑定

为什么不能通过类名改变display,但在js里直接改可以

switch(obj.innerHTML){
            case "房产":
              //document.getElementById("div1").className = "myshow";
              mydiv[0].style.display = "block";
              break;
            case "家居":
              //document.getElementById("div2").className = "myshow";
              mydiv[1].style.display = "block";
              break;
            case "二手房":
              //document.getElementById("div3").className = "myshow";
              mydiv[2].style.display = "block";
              break;
        }


正在回答

3 回答

这是一个样式优先级的问题。样式分为内联样式,内部样式,和外部样式,优先级从左往右。按照你写的代码,就会出现style="display="none"",className ="myshow",这两个样式冲突,会优先执行内联样式,也就是display="none"。如果你想用类的话,不要用style.display="none"来设置,可以直接再设置一个none的类,两个类切换就可以了

0 回复 有任何疑惑可以回复我~

不能吧  通过类名改样式只有在css里管用  js只能获取个类名的集合,再通过style属性改

0 回复 有任何疑惑可以回复我~
#1

Joyce_Wu 提问者

你看我注释掉的,就是你说的意思,但是display没变
2017-07-28 回复 有任何疑惑可以回复我~

我好像有点知道了,js在head标签,body还没加载出来,所以没有效果

0 回复 有任何疑惑可以回复我~
#1

Joyce_Wu 提问者

为什么用了onload还是不对呢?
2017-07-28 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么不能通过类名改变display,但在js里直接改可以

我要回答 关注问题
微信客服

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

帮助反馈 APP下载

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

公众号

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