выбор запроса не определен даже после проверки его с помощью if conditional

#javascript #function #asynchronous #modal-dialog #alert

#javascript #функция #асинхронный #модальный диалог #предупреждение

Вопрос:

Я изучаю основы Javascript и пытаюсь создать модал, который заменяет предупреждение, я почти закончил, но у меня проблема с querySelector на кнопке, чтобы закрыть его. Он возвращает undefined, даже если я проверяю его с помощью if conditional.

 
function getTemplate(templateName) {
  let template = document.querySelector(templateName);
  return template.innerHTML;
}

function createFragment(htmlStr) {
  let frag = document.createDocumentFragment();
  let temp = document.createElement('div');
  temp.innerHTML = htmlStr;
  while (temp.firstChild) {
    frag.appendChild(temp.firstChild);
  }
  return frag;
}

function putTemplate(template) {
  document.body.appendChild(createFragment(template));
}

function openAlert(alertName, btnOpen) {
  let openBtn = document.querySelector(btnOpen);

  openBtn.addEventListener('click', function () {
    putTemplate(getTemplate(alertName));
  });
}

function closeAlert(alertName, btnClose) {
  let closeBtn = document.querySelector(btnClose);
  if (closeBtn) {
    closeBtn.addEventListener('click', function () {
      let alertWrapper = document.querySelector(alertName);
      alertWrapper.parentNode.removeChild(alertWrapper);
    });
  }
}

function Alert(alertName, btnOpen, btnClose) {
  openAlert(alertName, btnOpen);
  closeAlert(alertName, btnClose);
}

Alert('#alertTemplate', '.activeBtn', '.deactive');
  

И это разметка:

 <template id="alertTemplate">
        <div id="alertWrapper">
          <h1></h1>
          <div class="alertBox confirmAlert" role="alert">
            <p></p>
            <button class="closeBtn deactive troll"></button>
            <button class="acceptBtn deactive"></button>
          </div>
        </div>
      </template>
``
  

Комментарии:

1. Каково значение btnClose и какая разметка связана с ними?

2. Добавьте также html-часть, чтобы лучше понять это.

3. @GMaiolo, это в Alert вызове функции. Также я отредактировал вопрос с помощью разметки, используемой js. @VaritJPatel

4. @Ren. отредактируйте свой вопрос с надлежащей разметкой, если можете, пожалуйста

5. Готово 🙂 добавлена разметка к вопросу