我的一个SSI文件中有一个javascript事件处理程序,它隐藏了一些可能会或可能不会出现在调用SSI文件的页面上的元素。结果,处理程序顺利进行,直到它找不到我要求它隐藏的元素,然后在完成任何可能隐藏的内容之前停止。那么,我怎样才能让JavaScript不会挂断该元素是否在页面上并且只是通过处理程序?
非常感谢。
迈克
答案 0 :(得分: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 :(得分:1)
有些代码可以很好地回答这个问题,但是这个:
if (element) {
element.hide();
}
答案 2 :(得分: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";
}