亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我正在嘗試編寫一個函數隱藏一個元素,顯示另一個

我正在嘗試編寫一個函數隱藏一個元素,顯示另一個

慕娘9325324 2021-08-26 14:54:35
我正在嘗試編寫一個函數來重現隱藏一個元素并顯示另一個元素的動作。我知道 JQuery 中有一些東西可以解決這個問題,但我還沒有,所以想用簡單的 js 解決它。const changeDisplay = (elm1, elm2) => {     let E1 = document.getElementById('elm1').style.display = 'none'     let E2 = document.getElementById('elm2').style.display = 'block'     return elm1.addEventListener('click', E1) &&     elm1.addEventListener('click', E2)   }   changeDisplay('not', 'ok')TypeError: document.getElementById(...) is null script.js:6:21
查看完整描述

3 回答

?
白板的微信

TA貢獻1883條經驗 獲得超3個贊

嘗試使用如下示例的代碼添加或刪除 CSS 類,這些類將根據需要隱藏或顯示您的元素。


window.onload = function() {

 var items = document.querySelectorAll('.item');

 for (var i=0; i < items.length; i++ ){

  items[i].addEventListener('click', function(event) {

    for (var i=0; i < items.length; i++ ){

      items[i].classList.remove("hidden");

    }

    event.target.classList.add("hidden");

   });

 }

}

.hidden { display: none; }

.item { cursor: pointer; }

<ul>

  <li class="item">Item 1</li>

  <li class="item hidden" >Item 2</li>

</ul>


查看完整回答
反對 回復 2021-08-26
?
千萬里不及你

TA貢獻1784條經驗 獲得超9個贊

在您的代碼段中,您嘗試訪問elm1和elm2作為字符串,因此您應該刪除'. 您的最后一行 addEventListener 可疑,我不明白您要做什么。


在 JS 中處理樣式更改時的最佳實踐是預先創建 CSS 類并使用 JS 動態更改該類。類似的東西:


const changeDisplay = (elm1, elm2) => {

     const E1 = document.getElementById(elm1);

     const E2 = document.getElementById(elm2);

     E1.className = 'display_none';

     E2.className = 'display_block';

     E1.addEventListener('click', /*FUNCTION*/);

     E2.addEventListener('click', /*FUNCTION*/);

   }


   changeDisplay('not', 'ok')


查看完整回答
反對 回復 2021-08-26
  • 3 回答
  • 0 關注
  • 251 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號