let hiddenLocales = document.getElementsByClassName('localeMatch') as HTMLCollectionOf<HTMLElement>;
let hideParentNode = hiddenLocales[0]?.parentElement;
hideParentNode?.remove(); // Remove the element
hideParentNode?.style.display = "none"; // Hide the element
8条答案
按热度按时间vh0rcniy1#
document.getElementsByClassName
返回一个类似数组对象。您可以使用以下脚本或者如果要隐藏所有
.xyz
元素nwlls2ji2#
getElementsByClassName
返回一个数组,不能像它那样直接设置元素的样式。w3nuxt5m3#
您需要执行以下操作:
let elem = document.getElementsByClassName('xyz')[0];
elem.style.display = 'none';
ojsjcaue4#
alen0pnh5#
工作版本
holgip5t6#
document.getElementsByClassName元素是找到的元素的活动HTML集合。
uubf1zoe7#
如果你真的想这样做,那么当然首先你需要正确拼写
getElementsByClassName
;你在控制台里看到这个错误了,对吧?那么,你需要知道getElementsByClassName
返回一个类似数组的东西;你在文档里看到过,对吧?,所以你必须循环遍历它,或者用[0]
取第一个元素,或者其他什么。但一般来说,像这样从DOM中检索元素并直接设置它们的样式是不好的做法。相反,利用CSS,它将为您完成90%的工作。在这里,我将使用一个控制行为的高级类,并设置它:
然后将CSS编写为
要隐藏
xyz
元素,需要一个JS语句:要删除它:
或切换:
一旦你理解了这种风格,你会发现自己编写的JavaScript要少得多,不需要进行各种DOM查找、循环和样式设置。
vql8enpb8#
document.getElementsByClassName
始终返回数组,如对象。指定**数组[0]**编号。** typescript **