[英]How to hide div then show another div on click using toggle_visibility
我想在隱藏 div 2 的同時在 html 加載上顯示 div 1,然后使用 onclick 我想交換它們的可見性,例如單擊按鈕隱藏 div1 然后顯示 div2,然后再次單擊時,隱藏 div2 然后顯示 div 1。這是我的代碼:
function toggle_visibility(id) { var e = document.getElementById(id); if(e.style.display == 'none') e.style.display = 'block'; else e.style.display = 'none'; }
<a href="#" onclick="toggle_visibility('foo');">Hide DIV 1 show DIV 2</a> <div id="foo"> This is DIV 1</div></div> <div id="foo"> This is DIV 2</div></div>
最初將您的div1
設置為display:none;
並簡單地切換它們。 我使用類targetElement
只是為了擺脫常見的選擇器。 hidden
類用於使用默認style
display:none;
並替換inline-style
.
我想使用button
而不是<a href="#">Click here</a>
。 要做到這一點,只需將標簽替換為<button type="button"> Button Name </button>
$('#toggleButton').on('click',function(){ $('.targetElement').toggleClass('hidden'); });
.hidden{ display:none; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <a id="toggleButton" href="#">Click here</a> <div id="foo" class="targetElement hidden"> This is DIV 1</div></div> <div id="foo" class="targetElement"> This is DIV 2</div></div>
具有相同 ID 的 2 個元素不是一個好習慣。 ID 應該始終是唯一的。 改用類。 在加載時隱藏 div。 只需在style
屬性中將 css 添加到 html 元素。 你也有不必要的</div>
標簽被我刪除了。
這是使用 JQuery 的工作代碼(更少的代碼):
$("#toggle").on("click", function() { $(".isToggable").toggle(); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <a id="toggle" href="#" >Hide DIV 1 show DIV 2</a> <div class="isToggable"> This is DIV 1</div> <div class="isToggable" style="display:none"> This is DIV 2</div>
在 html 中,我向要切換的元素添加了類。 我還在a
標簽中添加了一個 ID。 在 JQuery 中,我添加了一個事件偵聽器 onclick 使用它的 ID 標記a
標簽。 $(".isToggable").toggle();
獲取頁面中具有“isToggable”類的所有元素來切換它們的可見性。
沒有參數, .toggle() 方法只是切換元素的可見性
有關切換的更多信息: JQuery 切換
function toggle_visibility(id) { var container = document.getElementById(id); for (var i = 0; i < container.children.length; i++) { let currentElem = container.children[i]; if (currentElem.style.display === "none") { currentElem.style.display = "block"; } else { currentElem.style.display = "none"; } } }
<a href="#" onclick="toggle_visibility('container');">Hide DIV 1 show DIV 2</a> <div id="container"> <div> This is DIV 1</div> <div style="display:none"> This is DIV 2</div> </div>
這是如何工作的,您將要切換可見性的元素放在容器內, toggle_visibility
函數將切換內部元素的所有可見性。 這樣,如果您決定添加更多 div,它們都將被處理。
如果您對它的工作原理有任何疑問。 不要猶豫,問。 希望能幫助到你 !
首先使用 CSS 隱藏第二個 div。 然后使用forEach()
隱藏/顯示 div。 您還應該避免使用內聯事件處理程序。
嘗試以下方式:
document.querySelector('a').addEventListener('click',function(){ [].forEach.call(document.querySelectorAll('.foo'), function(el){ if(el.style.display == 'none') el.style.display = 'block'; else el.style.display = 'none'; }); });
<a href="#">Hide DIV 1 show DIV 2</a> <div class="foo"> This is DIV 1</div></div> <div class="foo" style="display:none;"> This is DIV 2</div></div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.