2013-04-04 87 views
1

在這種情況下,我不能元素狀態設置爲可見:無法覆蓋顯示:無在JavaScript

<html> 
<head> 
    <style type="text/css"> 
    #elem {display:none} 
    </style> 
</head> 
<body> 
    <div id="elem">.......</div> 
    <script type="text/javascript"> 
    document.getElementById("elem").style.display=""; 
    </script> 
</body> 
</html> 

它只能當我設置顯示爲「塊」。

在這種情況下,它的工作原理:

<html> 
<head> 
</head> 
<body> 
    <div id="elem" style="display:none">.......</div> 
    <script type="text/javascript"> 
    document.getElementById("elem").style.display=""; 
    </script> 
</body> 
</html> 

我的興趣是,使之在第一種情況下工作,沒有設置「塊」。

+0

意味着上述事情** {display:none} **不工作,它甚至不讀取甚至** {display:block} **,因爲正在寫block或不會創建任何區別,它會顯示爲通常 – 2013-04-04 10:29:46

回答

3

爲什麼要使用內聯樣式而不是css類?

<html> 
<head> 
    <style type="text/css"> 
    #elem.hidden {display:none} 
    </style> 
</head> 
<body> 
    <div id="elem" class="hidden">.......</div> 
    <script type="text/javascript"> 
    document.getElementById("elem").className = ''; 
    </script> 
</body> 
</html> 
2

.style.display屬性設置爲""將從元素中刪除任何內聯樣式。然後級聯中的先前值將應用。

在這種情況下,首先沒有內聯樣式,並且已經從級聯中接收到"none"值。

您可以將值設置爲the "initial" keyword,但您可能會發現瀏覽器支持不足。


你抽象無論您正在試圖通過修改display財產離開來解決,但有一個很好的機會,你將與更好潛在的問題:

#elem.JSOnly {display:none} 

與:

<div id="elem" class="JSOnly"> 

document.getElementById('elem').className = "" 

或類似的。

-1

試試這個:

document.getElementById("elem").style.display="block"; 
-3

也使用jQuery,像這樣。

<script type="text/javascript"> 
jQuery('#elem').css('display',''); 
</script> 

您還想添加jQuery庫。