0
我有以下一塊JS/prototypeJS,我想寫在完整的香草JS。我希望點擊一個元素(具有相同類別的多個元素中的一個 - faq-container
),並添加一個特定的類(在這種情況下爲faq-display
),並將此類僅添加到父容器(faq-block
)。將Prototype JS轉換爲vanilla JS。
我明白,純JS功能與.parent.addClass
有關,但無法找到與我的情況相關的示例。
的prototypeJs線:
faqContainers[i].addEventListener('click', function(e) {
和
var faqToggle = e.target.up('.faq-block');
腳本文件是:
var faqContainers = document.getElementsByClassName('faq-container');
for (var i = 0; i < faqContainers.length; i++) {
faqContainers[i].addEventListener('click', function(e) {
var faqToggle = e.target.up('.faq-block');
if (faqToggle.classList.contains('faq-display')) {
faqToggle.classList.remove('faq-display');
} else {
faqToggle.classList.add('faq-display');
}
});
}
非常感謝!
['addEventListener'](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener)不是prototypejs方法 – Bergi
根據您的DOM(您沒有向我們顯示您的頁面標記),您可能甚至不需要'up',但可以簡單地使用像'e.currentTarget.parentElement'之類的東西。 – Bergi
在Mac Safari(最新版本)中,您可以用'closest'代替'up',並且您的腳本可以不加修改。如果你調查一個最接近的polyfill(它只是成爲大多數目標瀏覽器的本機),你應該設置。 – Walter