[英]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.