我有一個JavaScript事件處理程序在我的SSI文件隱藏了一堆可能或可能不會出現在調用SSI文件的頁面上的一些元素。因此,處理程序會順利進行,直到它找不到我要求它隱藏的元素,然後在完成可能隱藏的任何內容之前停止。那麼,我怎樣才能讓JavaScript不會掛在頁面上的元素是否在頁面上,而只是通過處理程序?如何才能讓JavaScript只隱藏元素?
非常感謝。
邁克
我有一個JavaScript事件處理程序在我的SSI文件隱藏了一堆可能或可能不會出現在調用SSI文件的頁面上的一些元素。因此,處理程序會順利進行,直到它找不到我要求它隱藏的元素,然後在完成可能隱藏的任何內容之前停止。那麼,我怎樣才能讓JavaScript不會掛在頁面上的元素是否在頁面上,而只是通過處理程序?如何才能讓JavaScript只隱藏元素?
非常感謝。
邁克
取決於你是如何得到的元素。如果你不使用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();
一些代碼將是不錯的正確回答這個問題,但對於這一點:
if (element) {
element.hide();
}
在普通的舊的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";
}
或者更簡潔:element && element.hide(); – HBP 2009-07-27 04:44:27