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

来源:10-1 编程挑战

Joyce_Wu

2017-07-28 16:10

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

  • 信者得救
    2017-07-29 16:09:57
    已采纳

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

  • qq_没差i_0
    2017-07-28 18:07:20

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

    Joyce_...

    你看我注释掉的,就是你说的意思,但是display没变

    2017-07-28 18:37:13

    共 1 条回复 >

  • Joyce_Wu
    2017-07-28 16:25:34

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

    Joyce_...

    为什么用了onload还是不对呢?

    2017-07-28 16:33:00

    共 1 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468781 学习 · 22507 问题

查看课程

相似问题