如果可以找到元素,我如何要求JavaScript隐藏该元素?
我的一个SSI文件中有一个javascript事件处理程序,它隐藏了一些元素,这些元素可能出现在调用SSI文件的页面上,也可能不出现。因此,处理程序会一直顺利进行,直到找不到我要求它隐藏的元素,然后在完成可能要隐藏的内容之前停止。那么,如何让JavaScript不被元素是否在页面上挂起,而直接通过处理程序呢如果可以找到元素,我如何要求JavaScript隐藏该元素?,javascript,html,css,Javascript,Html,Css,我的一个SSI文件中有一个javascript事件处理程序,它隐藏了一些元素,这些元素可能出现在调用SSI文件的页面上,也可能不出现。因此,处理程序会一直顺利进行,直到找不到我要求它隐藏的元素,然后在完成可能要隐藏的内容之前停止。那么,如何让JavaScript不被元素是否在页面上挂起,而直接通过处理程序呢 非常感谢。迈克一些代码可以很好地回答这个问题,但是这个呢: if (element) { element.hide(); } 取决于你如何得到元素。如果不使用JS库,则可以执行以下
非常感谢。
迈克一些代码可以很好地回答这个问题,但是这个呢:
if (element) {
element.hide();
}
取决于你如何得到元素。如果不使用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();
在纯旧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();实际上,只要事先尝试选择,使用jQuery元素的if就永远不会为null。如果没有元素,那么它将只是一个空的jQuery,我知道,您在回答中这样说过。但这只是猜测,OP没有指定纯Javascript之外的任何内容。