使用 Class 隐藏 HTML 元素,除非使用 Javascript 存在 URL 参数

Hiding HTML Element With Specific Class Unless URL Parameter is Present Using Javascript

尝试隐藏具有特定 class 的元素(class,共 "input-container"),除非存在特定 URL 参数。已经制定了以下代码,但似乎无法正常工作。 if/else 语句已使用警报进行了测试,因此我知道该部分正在运行。这是我试图在代码似乎被破坏的地方分配显示变量的地方。不幸的是,我必须使用 class 名称而不是 ID 来执行此操作。想法?

<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>

你的代码看起来没问题。我想知道为什么不起作用。不管怎样,我会试试这个

<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>

事实证明,这是座椅和键盘之间的问题。我是个白痴,没有意识到 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>