私のアコーディオンは、開け閉めに基づいて私のdiv
のスペースをいっぱいにし続けます。私はそれの周りにdiv
をラップし、この動作を防ぐために展開されたアコーディオンの高さに設定します。問題は私のjsはthis.nextSibling
を選択することに依存し、それはすべてを壊すことです。兄弟要素の子を選択するにはどうすればよいですか?
var acc = document.getElementsByClassName("review-button");
var i;
for (i = 0; i < acc.length; i++) {
acc[i].onclick = function() {
this.classList.toggle("active");
var panel = this.nextElementSibling;
if (panel.style.maxHeight){
panel.style.maxHeight = null;
} else {
panel.style.maxHeight = panel.scrollHeight + 'px';
}
}
}
複数のアコーディオンがあるので、それは範囲内の「this
」を使用しなければなりません。 私のオリジナルの考えは...何かなどを行うために
this.nextElementSibling.children[0];
だったが、それは動作しませんでした。
div
の現在のコンテンツは、アコーディオン機能を維持したまま、どのように高さを設定して折り返しますか?
<!--accordion 1-->
<button class="review-button" data-target="#demo{{ gameIndex }}">
<span class="review-button-chevron fa fa-angle-down"></span>
Our Reviews
</button>
<!-- Slide out -->
<div class="quote-machine-container">
<div id="demo{{ gameIndex }}" class=" quote-machine"></div>
</div>
<!--accordion 2-->
<button class="review-button" data-target="#demo{{ gameIndex }}">
<span class="review-button-chevron fa fa-angle-down"></span>
Our Reviews
</button>
<!-- Slide out -->
<div class="quote-machine-container">
<div id="demo{{ gameIndex }}" class=" quote-machine"></div>
</div>
あなたのHTMLスニペットを記載してください。 – isherwood
あなたはonclick関数でthis == acc [I]ですか? –