A-A+

js中使用style.display=”” 无效的解决办法

2016年10月15日 web前端设计 暂无评论 阅读 5 views 次

在js中我们有时想动态的控制一个div显示或隐藏或更多的操作,但如果我们style.display=“”可能导致没有效果哦,下面我来给大家介绍如何解决这个问题。

我们先看一个实例,代码如下:

  1. <style>  
  2.  #name  
  3.  {  
  4.      display:none;  
  5.  }  
  6. </style>  
  7. </head>  
  8. <body>  
  9. <div id="name" >  
  10. My name is smile.  
  11. </div>  
  12. </body>  
  13. </html>  
  14. <script>  
  15. window.onload=function(){  
  16. document.getElementById('name').style.display="";  
  17.  alert("test");  
  18. }  
  19. </script>  

css定义了id??ame的div为隐藏,而我们在页面加载完成之后用js控制该id显示出来,这样写有错么?

木有错?可是为什么界面上还是空白呢?

记得不?还有一个用法是xxx.style.display="block" 那我们试试吧,呜呼,竟然显示了!!!

那我们查看一下style.display=""和style.display="block"用法有什么不同吧。

其实,这两个的最大区别是block是块显示的,所以会换行,那么既然就这么点区别,为什么在本例子中一个可以显示,一个不行呢?困扰。

好吧,这个问题先放开,我们先看现在这个问题中我们如何解决,除了用style.display="block"可以解决外,还有另外一种办法就是:

  1. <div id="name" style="display:none" >  
  2. My name is smile.  
  3. </div>  
  4. <script>  
  5.      document.getElementById('name').style.display="";  
  6. </script>  

就是把id为name的样式用style这样内置到标签内,这样不管用display=""还是display="block"就都可以正常显示啦!!!

分享自己的做,我们做的时不是把display="",而是直接设置block或none这样不会出现上在的问题了,尽量不要使用空或其它字符哦。

标签:

给我留言