问答详情
源自:10-1 编程挑战

为什么不能通过类名改变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;
        }


提问者:Joyce_Wu 2017-07-28 16:10

个回答

  • 信者得救
    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_Wu
    2017-07-28 16:25:34

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