下面是用普通的JavaScript做到這一點的一種方法,它使用的通用代碼每個按鈕,在你的HTML和數據沒有JavaScript的屬性:
HTML:
<div id="buttonContainer">
<button data-content="content1">Content 1</button>
<button data-content="content2">Content 2</button>
<button data-content="content3">Content 3</button>
</div>
<div id="contentContainer">
<div id="content1">Showing Content 1</div>
<div id="content2">Showing Content 2</div>
<div id="content3">Showing Content 3</div>
</div>
的Javascript:
var buttons = document.querySelectorAll("#buttonContainer button");
for (var i = 0; i < buttons.length; i++) {
buttons[i].addEventListener("click", function() {
var contentItem = this.getAttribute("data-content");
var contents = document.querySelectorAll("#contentContainer div");
for (var j = 0; j < contents.length; j++) {
contents[j].style.display = "none";
}
document.getElementById(contentItem).style.display = "block";
});
}
工作演示:http://jsfiddle.net/jfriend00/rcDXX/
說明:
- 創建一個包含按鈕的股利。
- 創建一個包含各種內容區域的div。
- 創建顯示/隱藏適當的開始狀態的內容的CSS規則。
- 在每個按鈕上放置一個數據屬性,告訴您應該顯示哪個內容區域,以便您可以對所有按鈕使用通用代碼。
- 獲取所有按鈕到nodeList中。
- 在每個按鈕上設置單擊事件處理程序。
- 在該點擊處理程序中,獲取應爲該按鈕顯示的內容標識。
- 將其樣式設置爲
style.display = "none"
- 隱藏所有內容區域顯示所需的內容區域。
僅供參考,下面是一個使用一個輔助函數的代碼更先進一點的版本:http://jsfiddle.net/jfriend00/aqMLt/
這是作業嗎?我只問,因爲你提到它必須用純JavaScript來完成,這對於作業很常見。 – helion3
請發佈完整的代碼示例,包括您嘗試的內容。 – j08691
有一個名爲http://jsfiddle.net/的工具,您可以在其中創建您要做的事情的示例。這樣人們可以看到一些代碼並進行編輯,以便您可以得到確切的答案。 –