Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果可以找到元素,我如何要求JavaScript隐藏该元素?_Javascript_Html_Css - Fatal编程技术网

如果可以找到元素,我如何要求JavaScript隐藏该元素?

如果可以找到元素,我如何要求JavaScript隐藏该元素?,javascript,html,css,Javascript,Html,Css,我的一个SSI文件中有一个javascript事件处理程序,它隐藏了一些元素,这些元素可能出现在调用SSI文件的页面上,也可能不出现。因此,处理程序会一直顺利进行,直到找不到我要求它隐藏的元素,然后在完成可能要隐藏的内容之前停止。那么,如何让JavaScript不被元素是否在页面上挂起,而直接通过处理程序呢 非常感谢。迈克一些代码可以很好地回答这个问题,但是这个呢: if (element) { element.hide(); } 取决于你如何得到元素。如果不使用JS库,则可以执行以下

我的一个SSI文件中有一个javascript事件处理程序,它隐藏了一些元素,这些元素可能出现在调用SSI文件的页面上,也可能不出现。因此,处理程序会一直顺利进行,直到找不到我要求它隐藏的元素,然后在完成可能要隐藏的内容之前停止。那么,如何让JavaScript不被元素是否在页面上挂起,而直接通过处理程序呢


非常感谢。
迈克

一些代码可以很好地回答这个问题,但是这个呢:

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之外的任何内容。