0
私は以下のJS/prototypeJSを持っています。これは完全にvanilla JSで書いてみたいと思います。ある要素(同じクラスの要素のうちの1つ、つまり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(最新)では、 'up'に' nearest'を置き換えて、あなたのスクリプトは変更されずに動作します。最も近い(ほとんどのターゲットブラウザにネイティブになっている)ポリ充てんを調べる場合は、設定する必要があります。 – Walter