Я делаю веб-страницу с большим количеством ссылок. Я хочу открыть модальный при нажатии на одну ссылку, чтобы показать больше данных об этой ссылке. Я добился этого с помощью одной ссылки, но теперь, когда у меня вставлено больше ссылок, он не будет открывать другие моды, но всегда один и тот же, если я делаю это с классом, если я оставляю id (да, я знаю, я не думал заранее и сделал это с id) он откроет только первый, остальные даже не откроются.
Вот мой HTML-код:
<!-- reference item -->
<div class="grid-item set-bg osobj" data-setbg="img/portfolio/1.jpg">
<a id="myBtn"></a>
<div id="myModal" class="modal1">
<!-- Modal content -->
<div class="modal1-content">
<span class="close1">×</span>
<h2>REFERENCE NAME</h2>
<div class="post1-container">
<div class="post1-content">
<p>nekitext</p>
<h3>Neki header</h3>
</div>
</div>
</div>
</div>
</div>
<!-- reference item -->
<div class="grid-item set-bg osobj" data-setbg="img/portfolio/1.jpg">
<a id="myBtn"></a>
<div id="myModal" class="modal1">
<!-- Modal content -->
<div class="modal1-content">
<span class="close1">×</span>
<h2>REFERENCE NAME</h2>
<div class="post1-container">
<div class="post1-content">
<p>nekitext</p>
<h3>Neki header</h3>
</div>
</div>
</div>
</div>
</div>
а вот мой JS:
var modal = document.getElementById('myModal');
// Get the button that opens the modal
var btn = document.getElementById("myBtn");
console.log(btn);
// Get the <span> element that closes the modal
var span = document.getElementsByClassName("close1")[0];
// When the user clicks on the button, open the modal
btn.onclick = function() {
modal.style.display = "block";
}
// When the user clicks on <span> (x), close the modal
span.onclick = function() {
modal.style.display = "none";
}
// When the user clicks anywhere outside of the modal, close it
window.onclick = function(event) {
if (event.target == modal) {
modal.style.display = "none";
}
}
Я пытался использовать событие onclick, чтобы определить, какой тег myBtn, но в этом случае он работает только для одного модального. Другие не открываются и не работают.
PS: у меня закреплены модалы на изображении.
EDIT:
Я знаю, что у меня несколько идентификаторов, и эти идентификаторы уникальны в HTML. Я не планировал это заранее, так как думал, что у меня будет только один предмет, а теперь у меня несколько, и система рухнула. Должен быть лучший способ сделать это, чем дать каждому элементу свой идентификатор, верно?
EDIT2:
Я НЕ ХОЧУ ИСПОЛЬЗОВАТЬ ID. Вопрос в том, как определить, какой модальный тип открыть в javascript. Если я сделаю это с классами, откроется только один модальный, который всегда имеет одинаковое содержимое.