用JavaScript隱藏控件的方法有兩種,分別是通過設置控件的style的“display”和“visibility”屬性。
當style.display="block"或style.visibility="visible"時控件或見,當style.display="none"或style.visibility="hidden"時控件不可見。不同的是“display”不但隱藏控件,而且被隱藏的控件不再占用顯示時占用的位置,而“visibility”隱藏的控件僅僅是將控件設置成不可見了,控件仍然占俱原來的位置。
function displayHideUI() { var ui =document.getElementById("bbs"); ui.style.display="none"; } function displayShowUI() { var ui =document.getElementById("bbs"); ui.style.display="";//display為空的話會好使,為block會使後邊的空間換行 } function visibilityHideUI() { var ui =document.getElementById("bbs"); ui.style.visibility="hidden"; } function visibilityShowUI() { var ui =document.getElementById("bbs"); ui.style.visibility="visible"; } </script>
值 描述
none 此元素不會被顯示。
block 此元素將顯示為塊級元素,此元素前後會帶有換行符。
inline 默認。此元素會被顯示為內聯元素,元素前後沒有換行符。
inline-block 行內塊元素。(CSS2.1新增的值)
list-item 此元素會作為列表顯示。
run-in 此元素會根據上下文作為塊級元素或內聯元素顯示。
compact CSS 中有值compact,不過由於缺乏廣泛支持,已經從CSS2.1 中刪除。
marker CSS 中有值marker,不過由於缺乏廣泛支持,已經從CSS2.1 中刪除。
table 此元素會作為塊級表格來顯示(類似<table>),表格前後帶有換行符。
inline-table 此元素會作為內聯表格來顯示(類似<table>),表格前後沒有換行符。
table-row-group 此元素會作為一個或多個行的分組來顯示(類似<tbody>)。
table-header-group 此元素會作為一個或多個行的分組來顯示(類似<thead>)。
table-footer-group 此元素會作為一個或多個行的分組來顯示(類似<tfoot>)。
table-row 此元素會作為一個表格行顯示(類似<tr>)。
table-column-group 此元素會作為一個或多個列的分組來顯示(類似<colgroup>)。
table-column 此元素會作為一個單元格列顯示(類似<col>)
table-cell 此元素會作為一個表格單元格顯示(類似<td>和<th>)
table-caption 此元素會作為一個表格標題顯示(類似<caption>)
inherit 規定應該從父元素繼承display屬性的值。
今天解決的問題是在jsp頁面中給css定義的label.error的類一個id,然後通過控制id的可見性來實現收起div時清除js的提示信息。具體如下:
在准備界面的函數中var label1 = document.getElementById("label1");
$(document).ready(function() { $(".flipp .span4").click(function() { $(this).parent().next().toggle(); $(this).parent().parent().prevAll().find(".panel").hide(); $(this).parent().parent().nextAll().find(".panel").hide(); var label1 = document.getElementById("label1"); label1.style.display="none"; })
然後在jsp相應的地方加入:
<label class="error" id="label1" for="currentPWD" generated="true" style="display:inline"></label>
對於css定義的label.error類,可以使用$("label.error").removeAttr("style").attr("style", "display: none;");來實現如上的功能。而且,貌似也不用在地下相應的位置給label定義id值。