繁体   English   中英

我如何要求JavaScript仅在找到元素后才隐藏它?

[英]How can I ask JavaScript to hide an element ONLY IF it can be found?

我的一个SSI文件中有一个javascript事件处理程序,该事件处理程序隐藏了一堆可能会或可能不会出现在调用SSI文件的页面上的元素。 结果,处理程序运行顺利,直到找不到我要隐藏的元素为止,然后在完成可能要隐藏的任何操作之前停止。 因此,如何使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";
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM