簡體   English   中英

純JS // //更改另一個divs類時隱藏div

[英]Pure JS // Hide div when another divs class has been changed

注意:我不能使用jQuery,只能使用普通javascript

我不太會說純JS。 這次我不能使用任何外部資源(如jquery)。


我需要的:

如果div1類處於活動狀態,則隱藏text2

如果div2類處於活動狀態,則隱藏text1

我以某種方式使其工作,但是當類使用另一個JavaScript代碼動態更改時,我的JS不會觸發。

觸發活動類的代碼

function activeClass(elem) {
  var a = document.getElementsByClassName('item')
  for (i = 0; i < a.length; i++) {
    a[i].classList.remove('active')
  }
  elem.classList.add('active');
}

類更改時應觸發隱藏/顯示的代碼

if (document.querySelector(".text2").classList.contains("active")) {
  document.getElementsByClassName('text1s')[0].style.visibility = 'hidden';
  document.getElementsByClassName('text2s')[0].style.visibility = 'visible';
}

if (document.querySelector(".text1").classList.contains("active")) {
  document.getElementsByClassName('text2s')[0].style.visibility = 'hidden';
  document.getElementsByClassName('text1s')[0].style.visibility = 'visible';
}

我做錯了什么?


Codepen示范

  • 將您的條件放入點擊處理程序中。
  • inactive元素添加內聯visibility樣式

 function activeClass(elem) { var a = document.getElementsByClassName('item') for (i = 0; i < a.length; i++) { a[i].classList.remove('active') } elem.classList.add('active'); if (document.querySelector(".text2").classList.contains("active")) { document.getElementsByClassName('text1s')[0].style.visibility = 'hidden'; document.getElementsByClassName('text2s')[0].style.visibility = 'visible'; } if (document.querySelector(".text1").classList.contains("active")) { document.getElementsByClassName('text2s')[0].style.visibility = 'hidden'; document.getElementsByClassName('text1s')[0].style.visibility = 'visible'; } } 
 body { margin: 3em; } .item { cursor: pointer; } a { padding: 10px; } .active { color: red; border: 1px solid red; } 
 <a class="item text1" onclick="activeClass(this)">show text</a> <a class="item text2 active" onclick="activeClass(this)">hide text</a> <br> <br> <h1 class="text1s" style='visibility:hidden;'>TEXT 1</h1> <h1 class="text2s">TEXT 2</h1> 

更新的Codepen

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM