2009-07-27 56 views
0

我有一個JavaScript事件處理程序在我的SSI文件隱藏了一堆可能或可能不會出現在調用SSI文件的頁面上的一些元素。因此,處理程序會順利進行,直到它找不到我要求它隱藏的元素,然後在完成可能隱藏的任何內容之前停止。那麼,我怎樣才能讓JavaScript不會掛在頁面上的元素是否在頁面上,而只是通過處理程序?如何才能讓JavaScript只隱藏元素?

非常感謝。
邁克

回答

8

取決於你是如何得到的元素。如果你不使用JS庫,那麼你可以做這樣的事情:

/* handler begin code */ 
var el = document.getElementById('myElement'); 
if (el) { 
    //do work 
} 
/* handler end code */ 

它更容易,如果你使用像jQuery的,在這裏你可以選擇元素,那麼,即使不存在任何操作它對選定的一組將不會拋出異常

//this will work even if myElement doesn't exist - no exceptions will be thrown 
$("#myElement").hide(); 
1

一些代碼將是不錯的正確回答這個問題,但對於這一點:

if (element) { 
    element.hide(); 
} 
+0

或者更簡潔:element && element.hide(); – HBP 2009-07-27 04:44:27

0

在普通的舊的JavaScript(無庫),你只是這樣做對每個ID要隱藏:

if(document.getElementById("myelementId")) document.getElementById("myelementId").style.display = "none"; 

你可以把它放在如果您喜歡,也可以使用循環:

var elementsToHide = ["tom","dick","harry"]; 

for(var i in elementsToHide) { 
    var element = document.getElementById(elementsToHide[i]); 
    if(element) element.style.display = "none"; 
}