我正在尝试避免使用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);
这会导致我的浏览器崩溃,因为我没有使用innerHTML
来打印“离线”,而是整个<div>
。我希望隐藏此<div>
,而不是使用innetHTML
,只需取消隐藏条件是否满足(在这种情况下,没有互联网连接)。
答案 0 :(得分:10)
然后使用CSS隐藏和取消隐藏div。你可以这样做:
changeIt.style.visibility = 'hidden';
让div消失。并且
changeIt.style.visibility = 'visible';
再次展示。
答案 1 :(得分:5)
将div的display
CSS属性设置为none
。
https://developer.mozilla.org/en-US/docs/CSS/display
使用Javascript以编程方式设置它的示例:http://jsbin.com/ezanuv/1/edit
答案 2 :(得分:3)
您可以将display属性设置为none,或将visibility属性设置为hidden。
答案 3 :(得分:3)
我更喜欢使用css display属性。我有一个我最近写的运行代码。它非常简单和可扩展。
<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>
答案 4 :(得分:0)
最好的方法是将display none设置为hidden,将block设置为可见
//元素是您要隐藏或显示的div
element.style.display =(element.style.display ==“block”)? “无”:“阻止”;