Скрытие HTML-элемента с определенным классом, если URL-параметр не присутствует с использованием Javascript - PullRequest
0 голосов
/ 28 июня 2018

Попытка скрыть элемент (класс «input-container») с определенным классом, если не указан конкретный параметр URL. Разработали следующий код, но не могу заставить его работать. Оператор if / else был протестирован с использованием предупреждений, поэтому я знаю, что эта часть работает. Именно здесь я пытаюсь назначить переменную отображения, где код, кажется, ломается. К сожалению, я должен сделать это, используя имя класса, а не идентификатор. Мысли

<script>
  var isadmin = document.getElementsByClassName("input-container");
  if (window.location.search.indexOf('admin=yes') > -1) {
    isadmin[0].style.display = "block";
  } else {
    isadmin[0].style.display = "none";
  }
</script>

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Как оказалось, это была проблема между сиденьем и клавиатурой. Я идиот и не понимал, что Javascript выполнялся до загрузки элементов. Исправлена ​​проблема со следующим кодом ...

<script>
  window.onload = hidePass;
  function hidePass() {
  var isadmin = document.getElementsByClassName('input-container')[0]; 
  if (window.location.search.indexOf('admin=yes') > -1) {
    isadmin.style.display = "block";
  } else {
    isadmin.style.display = "none";
  }
  }
</script>
0 голосов
/ 28 июня 2018

Ваш код, кажется, в порядке. Интересно, почему не работает. В любом случае, я бы попробовал это

<script>
  var isadmin = document.getElementsByClassName("input-container");
  var url = new URL(window.location);
  if (url.searchParams('test') && url.searchParams('test') == 'yes') {
    isadmin[0].style.display = "block";
  } else {
    isadmin[0].style.display = "none";
  }
</script>
...