Здравствуйте. Помогите сделать один скрипт на все iframe. И остановку видео при закрытии модального окна

Сейчас приходится делать скрипт на каждый iframe. Сделал остановку воспроизведения при закрытии модального окна, но она работает только в Коде-пен. При загрузке на сервер почему то не работает.( пример кода только на первое видео)

Ниже человек под ником Grundy предложил выборку , но она открывает только второй iframe (при тестировании в коде-пен(По указанной ссылке есть такая информация : Если указанный селектор включает псевдо-элемент CSS,возвращенный список всегда пуст. может в этом причина?)) на сайт не загружал. Помогите пожалуйста.

https://codepen.io/Mcrabs/pen/JjWqxoX?editors=1111

(function () {


  var button = document.querySelector('.popup');
  var iframe = document.querySelector('.modal-iframe');


  button.addEventListener('click', function () {
  
    iframe.src = iframe.getAttribute('data-src');

    iframe.classList.toggle('hidden.iframe');

  });


})();
(function () {


  var button = document.querySelector('.popupa');
  var iframe = document.querySelector('.modal-iframea');


  button.addEventListener('click', function () {
  
    iframe.src = iframe.getAttribute('data-src');

    iframe.classList.toggle('hidden.iframe');

  });


})();
 
.wrapper {
  text-align: center;
}
.back, .iw-modal-btn {
  text-align: center;
  display: inline-block;
  text-decoration: none;
  -webkit-transition: all 1s ease;
  -moz-transition: all 1s ease;
  transition: all 1s ease;
}
.back:hover, .iw-modal-btn:hover {
     -webkit-transform: scale(1.1);
     -moz-transform: scale(1.1);
     -o-transform: scale(1.1);
    -webkit-transition: all 0.5s ease;
    -moz-transition: all 0.5s ease;
    transition: all 0.5s ease;
    background:#439ce000;
}

/********Модальное окно************/
  
/*CSS-свойства для заднего фона модального окна*/
.iw-modal {
  opacity: 0;
  background: rgb(0 0 0 / 43%);
  pointer-events: none;
  position: fixed;
  top: 10px;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 9999;
  transition: all 1s ease;
}
.iw-modal:target {
    opacity: 1; /*при клике окно становится видимым*/
    pointer-events: auto; /*теперь по окну можно кликать мышкой*/
    overflow-y: auto; /*прокрутка по вертикли страницы*/
}

.iw-modal-wrapper {
  max-width: 800px;
    height: 600px;
    margin: auto;
    margin-top: 5vh;
}

/*CSS-свойства для блока, содержащего контент модального окна */ 
.iw-CSS-modal-inner {
    position: relative;
}
/*CSS-свойства заголовка модального окна */
.iw-modal-header {
  padding: 15px;
  margin-top: 20px;
  background: #fcfef6;
  position: relative;
}


/*CSS для кнопки закрытия окна*/
a.iw-close {
  position: absolute;
  top: 2px;
  right: 10px;
  font-size: 26px;
  color: #000;
  text-decoration: none;
}

a.iw-close:hover, a.iw-close:focus {
    color: #000; /*цвет шрифта при наведении*/
    cursor: pointer;
}

/*CSS для блока с текстом модального окна*/

.iw-modal-text {min-width: 90%;
  height: 600px;
}
.modal-iframe{min-width:100%;min-he(function () {


  var button = document.querySelector('.popup');
  var iframe = document.querySelector('.modal-iframe');


  button.addEventListener('click', function () {
  
    iframe.src = iframe.getAttribute('data-src');

    iframe.classList.toggle('hidden.iframe');

  });


})();ight:90%;}

iframe {
  display: block;
}

.hidden.iframe {
  display: none;
}
  <div class="top">
  <div class="video-block one">
  <div class="wrapper"><button class="popup"><a href="#iw-modal-amur1" class="iw-modal-btn"><img src="https://mblonline.ru/Russia/fotorus/amurskaya-tambovka.JPG" width="300" height="200" alt="Дальневосточный аист"></a></button>
    <div id="iw-modal-amur1" class="iw-modal"><div class="iw-modal-wrapper"><div class="iw-CSS-modal-inner"><div class="iw-modal-header"><a href="#close" title="Закрыть" class="iw-close">×</a></div><div class="iw-modal-text">    
                   <iframe class="modal-iframe hidden.iframe" id="myvideok" data-src="https://open.ivideon.com/embed/v2/?server=100-Tp3RLgbPyG8uX3xFVpQTa4&amp;camera=0&amp;width=&amp;height=&amp;lang=ru" width="897" height="400" frameborder="0" allowfullscreen ></iframe>
    </div></div></div></div></div><div class="tab"><input type="checkbox" class="read" id="readamur1" /><label for="readamur1" class="more-ul">Дальневосточный аист — одна из самых редких птиц Дальнего Востока России.</label><div class="tab-content">Онлайн камера расположена около села Тамбовки. Гнездо №1</div></div></div>
  <div class="video-block one">
  <div class="wrapper"><button class="popupa"><a href="#iw-modal-amur2" class="iw-modal-btn"><img src="https://mblonline.ru/Russia/fotorus/berezovskii-zapovednik2.JPG" width="300" height="200" alt="Дальневосточный аист"></a></button>
    <div id="iw-modal-amur2" class="iw-modal"><div class="iw-modal-wrapper"><div class="iw-CSS-modal-inner"><div class="iw-modal-header"><a href="#close" title="Закрыть" class="iw-close">×</a></div><div class="iw-modal-text">    
      <iframe class="modal-iframea modal-iframe hidden.iframe" data-src="https://open.ivideon.com/embed/v2/?server=100-hbPET0T2QpL7naUp4YZJhr&amp;camera=0&amp;width=&amp;height=&amp;lang=ru" type="text/html" frameborder="0" allowfullscreen></iframe>
      </div></div></div></div></div><div class="tab"><input type="checkbox" class="read" id="readamur2" /><label for="readamur2" class="more-ul">Дальневосточный аист гнездо №1 — одна из самых редких птиц Дальнего Востока России.</label><div class="tab-content"> Онлайн камера расположена в заказнике "Берёзовский" Амурской области, Ивановском районе, левый берег реки Зея</div></div></div>
 </div></div></div>
 


Ответы (1 шт):

Автор решения: Grundy

Так как структура одинаковая и все лежит внутри элемента с классом wrapper, достаточно получить их все, пройтись по ним в цикле и добавить обработчик кнопки

for(var wrapper of document.querySelectorAll('.wrapper')){
  
  var button = wrapper.querySelector('button'); // .popup
  var iframe = wrapper.querySelector('iframe'); // .iframe

  button.addEventListener('click', function () {
    iframe.src = iframe.getAttribute('data-src');
    iframe.classList.toggle('hidden.iframe');
  });
}
→ Ссылка