JavaScript:如何隐藏/取消隐藏<div>

Hom*_*mie 8 html javascript innerhtml hide

我试图避免使用,innerHTML因为它导致我的浏览器崩溃,可能是由于250毫秒的刷新率.

无论如何,我宁愿在隐藏中有一些内容,只有在满足某个条件时才能<div>使其<div>可见.解决这个问题的最佳方法是什么?

基本上,我现在正在做的是......

setInterval(function () {
    if (serverReachable()) {
        .... // lines of code
        .... // lines of code
    var changeIt = document.getElementById('change')
    changeIt.innerHTML = '';
           timeout = setInterval(function(){window.location.href = "Tracker.html";},5000);
        }
    } else {
        clearTimeout(timeout);
        timeout = null;
    var changeIt = document.getElementById('change')
    changeIt.innerHTML = 'offline';
   }
}, 250);
Run Code Online (Sandbox Code Playgroud)

这会使我的浏览器崩溃,因为我不是innerHTML用来打印"离线"而是整个<div>.我希望<div>隐藏,而不是使用innetHTML,只是取消隐藏条件是否满足(在这种情况下,没有互联网连接).

Vin*_*nie 10

然后使用CSS隐藏和取消隐藏div.你可以这样做:

    changeIt.style.visibility = 'hidden';
Run Code Online (Sandbox Code Playgroud)

让div消失.和

   changeIt.style.visibility = 'visible';
Run Code Online (Sandbox Code Playgroud)

再次展示它.

  • @EliUnger:应该注意的是,隐藏带有"visibility"的元素仍然会占据页面上的空间,而`display ='none'`基本上会删除它 - 你使用它取决于你的情况. (3认同)

jra*_*jav 6

displaydiv 的CSS属性设置为none.

https://developer.mozilla.org/en-US/docs/CSS/display

使用Javascript以编程方式设置它的示例:http://jsbin.com/ezanuv/1/edit


Aha*_*Ali 6

我更喜欢使用 css 显示属性。我有一个最近编写的运行代码。它非常简单且可扩展。

  <HEad>
    <script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
    <script> 
       $(document).ready(function() {
         $.setDisplay = function (id){
           if($("#" + id ).css('display') == 'none'){
             $("#" + id ).css('display', 'block');
           }
           else
           if($("#" + id ).css('display') == 'block'){
             $("#" + id ).css('display', 'none');
           }
         }

         $('*[id^="divheader"]').click(function (){
            $.setDisplay($(this).data("id"));
         });
       });
     </script>
  </HEad>        

<div id='divheader-div1' data-id='div1'>
  This is the header Click to show/unshow
</div>
<div id='div1' style='display: block'>
  <div>
    <label for="startrow">Retail Price:</label>
    <input type="text" name="price" id="price" value=""><small></small>
  </div>
</div>

<div id='divheader-div2' data-id='div2'>
 This is the header Click to show/unshow
</div>
<div id='div2' style='display: none'>
 <div>
   <label for="startrow">Division:</label>
   <input type="text" name="division" id="division" value=""><small> </small>
 </div>
</div>
Run Code Online (Sandbox Code Playgroud)