【js调用display:none失效的问题】

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【js调用display:none失效的问题】相关的知识,希望对你有一定的参考价值。

网站的版权信息用JS1来调用,里面含有CNZZ统计代码JS2,想要将统计代码隐藏,但是style="display:none"在IE浏览器下都无法正常隐藏。如何解决?

JS不在文档流,隐藏JS不代表隐藏了JS生成的html
你要看统计代码最后生成的HTML是什么,如果有样式,就在你的CSS里面重定义样式为 display就行了
参考技术A 把js代码放在一个div里,这样写:
<div style="display:none ">
<script>JS代码</script>
</div>追问

那我整个JS都隐藏了啊
我只想隐藏其中一部分

追答

那就把要隐藏的那一部分放在里,不隐藏的部分再放到另外一个div里

追问

但是display:none放在JS里面IE下就失效了啊
什么容器都不管用div、span、td、p我都试过
Firefox反而正常

追答

看看你的div是不是已经在css里定义样式了。你的IE有问题?你的是IE几?我用IEtester测试了一下,从IE6到IE9,都支持display:none属性啊

参考技术B 你的ie几啊,我在ie8下测试可以的啊

float失效的情况

前言:在最近的笔试中,两次碰到类似的问题,什么情况下float会失效?我目前知道的有2种:

1)display:none;

2)position:absolute、fixed。

(1)display:none

设置成display:none了之后,float失效这一点自然不用说。因为此时元素已经不在dom树里了,float当然起不了作用。

(2)position:absolute、fixed。

先看看没有设置position:absolute/fixed时的表现:

<div id="wrap">
    <div id="div1">浮动div</div>
    <div id="div2">参考div</div>
</div>
#wrap{
     width:300px;
     height:300px;
     border:1px solid black;
     position: relative;
     margin: 0 auto;
 }
 #div1{
     width:100px;
     height:100px;
     background: red;
     float:left;

 }
 #div2{
     width:100px;
     height:100px;
     background:blue;
     float:left;
 }

image

现在,为红色div1设置position:absolute/fixed:

#div1{
     width:100px;
     height:100px;
     background: red;
     float:left;
     position: fixed;
     /*或者position: absolute;*/
     top:20px;
     left:20px;
 }

image                      image

               position:absolute                                                         position:fixed

以上两种,无论是fixed(相对窗口定位)或者absolute(相对最近的position属性不为static的祖先元素),都使得红色div的float失效,于是蓝色div直接浮动到边界的左上角。

以上是关于【js调用display:none失效的问题】的主要内容,如果未能解决你的问题,请参考以下文章

float失效的情况

关于js控制display:none的问题

js添加修改删除表格中数据修改时在表格中直接修改

EXT JS 使用“display:none”的方法是啥

使用js设置ul标签的显示或隐藏和超链接调用js文件的方法

display:none的使用注意事项