我在選項卡標題之間有一個非常類似的問題。選項卡標題爲<span>
標記,因此大多數瀏覽器將空白作爲DOM中的文本節點呈現。要刪除忽略的空白節點,調用JavaScript函數在頁面加載時,像這樣:
function fixTabContainer() {
var tabContainerHeader = $get('<%#TabContainer1.ClientID%>' + '_header');
var children = tabContainerHeader.childNodes;
for (var i = 0; i < children.length; i++) {
if (is_all_ws(children[i])) {
tabContainerHeader.removeChild(children[i]);
i--;
}
}
}
/**
* Determine whether a node's text content is entirely whitespace.
* (From https://developer.mozilla.org/en/whitespace_in_the_dom)
* @param nod A node implementing the |CharacterData| interface (i.e.,
* a |Text|, |Comment|, or |CDATASection| node
* @return True if all of the text content of |nod| is whitespace,
* otherwise false.
*/
function is_all_ws(nod) {
// Use ECMA-262 Edition 3 String and RegExp features
return !(/[^\t\n\r ]/.test(nod.data));
}
腳本發現保存選項卡頭,並通過這些頭<span>
元素循環的<div>
。它刪除所有僅包含可忽略空白(它由第二個函數確定)的節點。
注意:IE8 DOM不幸的是不包含文本節點(這是一個已知的錯誤)。
是否允許使用CSS來糾正它? – K2so 2010-03-29 18:47:45
@ K2so,是的,CSS或任何其他手段。 – Phil 2010-03-29 21:14:48