Я пытаюсь создать веб-страницу, где у меня есть список кнопок, и каждая кнопка переключает видимость div непосредственно под ним.Как связать отдельные кнопки с отдельными div?
Проблема, с которой я сталкиваюсь, заключается в том, что все мои кнопки только переключают видимость последнего div на моей странице.
Вот следующий соответствующий код:
HTML
<div class="menuItem">
<button>Food Item</button>
<div class="info">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<img src="../images/menu/spaghetti.jpg" alt="spaghetti">
</div>
</div>
<div class="menuItem">
<button>Food Item</button>
<div class="info">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<img src="../images/menu/spaghetti.jpg" alt="spaghetti">
</div>
</div>
<div class="menuItem">
<button>Food Item</button>
<div class="info">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<img src="../images/menu/spaghetti.jpg" alt="spaghetti">
</div>
</div>
А вот мой JavaScript:
"use strict";
(function() {
var menuItems = document.getElementsByClassName("menuItem");
for(var ii = 0; ii < menuItems.length; ii++) {
var button = menuItems[ii].getElementsByTagName("button")[0];
var info = menuItems[ii].getElementsByClassName("info")[0];
button.onclick = function() {
if(info.style.display === "block") {
info.style.display = "none";
} else {
info.style.display = "block";
}
};
}
})();
Я не думаю, что я полностью понимаю, что браузер делает под капот. Я думаю, что получаю ссылки на каждую отдельную кнопку, но похоже, что когда я меняю метод onclick на одну кнопку, я меняю метод onclick для всех. Почему это происходит, и как я могу это предотвратить?