2016-12-18 30 views
0

舊的一次性大型機程序員。 試圖有條件地顯示或不顯示HTML。 搜索並嘗試了很多建議。沒有運氣。將不勝感激幫助。 最新檢測嘗試:有條件的HTML「編程」的問題

<html> 
<head> 
<title>July 27 - Lang Bay </title> 
</head> 
<script language="javascript"> 
    var x = 0; 
    function hola(x) { 
     if(x == 0) {   
      document.getElementById("showpage").style.visibility="hidden"; 
     } 
    } 
</script> 
<body> 
<div id="showpage"> 
    <p><font size=+1>July 27 - Lang Bay </font> 
    <br><TABLE> 
    <TR> 
    <TD><br><a href="../../jpg/2009/090727_052p.jpg"><img SRC="../../jpg/2009/090727_052ptn.jpg"><br>B.C., Lang Bay<br>Afternoon on the beach </a> 
    <TD><br><a href="../../jpg/2009/090727_053p.jpg"><img SRC="../../jpg/2009/090727_053ptn.jpg"><br>B.C., Lang Bay<br>Heather McCutcheon, Sydney </a> 
</div> 

</body> 
</html> 
+2

你有定義的函數和一切都很好,但你沒有調用(運行)該函數。 – Dekel

+0

另一件重要的事情 - 你需要確保在頁面被完全加載之後調用函數**(否則,帶有'showpage' id的元素還沒有,並且你不能'document.getElementById 「一個不存在的元素)。 – Dekel

回答

1

腳本元素的語言屬性已被廢棄在HTML 4 (1999)和更高版本中已被刪除。不要使用它。

在你的代碼有:

var x = 0; 
function hola(x) { 
    if (x == 0) {   
    document.getElementById("showpage").style.visibility="hidden"; 
    } 
} 

當你提供一個函數聲明的形式參數列表中的參數(即function hola(x){...}X那麼它等同於聲明函數體內的變量,所以在函數引用當地X,而不是全球性X。您可以從參數列表中刪除X,或者通過它在通話,如

function hola() { 
    // use global x 
} 

function hola(x) { 
    // use local x 
} 

// pass value of global x in the call 
hola(x); 

既然你還沒有表現出HOLA怎麼叫,最簡單的解決方法是第二個。

正如評論所說,你需要在元素加載後調用函數。使用的window.onload爲:

window.onload = function() { 
    hola(x); 
} 
0

答案很簡單:等待窗口加載,然後調用hola。 (在JavaScript中,您需要調用函數來調用其中的代碼)。

window.addEventListener('load', function() { 
    hola(0); 
}); 

此外,你需要傳遞0hola,因爲在hola宣佈x參數覆蓋全局變量x