繁体   English   中英

getElementsByClassName()。classList.remove()返回未定义

[英]getElementsByClassName().classList.remove() returning undefined

我有一个Marketo表单,我希望在提交表单时隐藏所有表单元素并显示div(“ thank-you”类),并且不断收到错误Uncaught TypeError: Cannot read property 'remove' of undefined 有什么想法我可能做错了吗?

小提琴: https : //jsfiddle.net/Ld7fajmy/

的HTML

<div class="thank-you hide">
  message
</div>

JS

document.getElementsByClassName("thank-you").classList.remove("hide");

getElementsByClassName方法作为NodeList对象返回具有指定类名的文档中所有元素集合 ,因此您需要通过传递索引来访问它

document.getElementsByClassName("thank-you")[0].classList.remove("hide");

替换为:

    document.getElementsByClassName('message')[0].classList.remove('hide');

请注意,我删除了。 (点)在“消息”上-您将获得className,因此除非您使用querySelector,否则无需添加点。

就像@tyler提到的那样,getElementsByClassName返回所有元素的集合,这将返回一个数组。 因此您需要添加[0]以获得第一个结果。

暂无
暂无

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

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