https://jsfiddle.net/tsquinn/p044mb36/點擊這個按鈕,隱藏信息並加載JavaScript的新信息
這是我想要做的一個例子html。
<ul class="pageMenu">
<li class="colorLink"><a href="">Red</a></li>
<li class="colorLink"><a href="">Blue</a></li>
<li class="colorLink"><a href="">Green</a></li>
<li class="colorLink"><a href="">Purple</a></li>
</ul>
<section id="contents">
<h1>Contents</h1>
<p>
This is where the colored text loads. Each ".colorLink" click must overwrite the text that's here with the new text that corresponds with the link clicked.
</p>
</section>
<div id="colors">
<div class="red">
<h2>Red</h2>
<p>
This is RED text!
</p>
</div>
<div class="blue">
<h2>Blue</h2>
<p>
This is BLUE text!
</p>
</div>
<div class="green">
<h2>Green</h2>
<p>
This is GREEN text!
</p>
</div>
<div class="purple">
<h2>Purple</h2>
<p>
This is PURPLE text!
</p>
</div>
</div>
問題: 我需要div#colors
加載頁面時被隱藏。然後點擊鏈接將相應的文本加載到頁面上的內容部分。
我在這裏和網絡的其他部分查詢了答案。我發現一個Q & A允許按鈕顯示/隱藏子鏈接,但我的鏈接不是兒童。我知道JS很少,但即使使用我發現的代碼也沒有解決問題。我可以得到按鈕來切換相應的文本,但我無法從一開始就隱藏任何東西。
這是據我可以得到我知道這是不對的:
<script>
var removeText = document.getElementById('colors').style.display='none';
$(document).ready(function showLink(){
removeText;
$('.colorLink a').click(function(e){
e.preventDefault();
var links = document.getElementsByName('ul.pageMenu li');
var page = document.getElementsByClassName('#colors div');
if ($(this).links == page) {
$("#contents")
}
});
});
</script>
要麼你忘了它,或不知道它,但你的腳本中缺少部分。沒有人可以幫助你,如果你提供不完整的腳本。 –
如果'div#colors'被隱藏('display:none'),那麼沒有一個顏色類div會顯示,因爲它們在一個未顯示的容器中。即'div.blue'是否可見因爲它位於不可見容器內部並不重要。當頁面加載時你想要的是'div#colors'的_contents_被隱藏,而不是div本身。你可以用純CSS做到這一點,你不需要使用javascript來隱藏它:'#colors div {display:none; }'會讓它們在加載時隱藏,但是之後你可以用javascript顯示它們。 –
出於某種原因,我甚至沒有想過使用CSS來隱藏所有內容。感謝那。 – Tim