下面是用普通的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/的工具,您可以在其中创建您要做的事情的示例。这样人们可以看到一些代码并进行编辑,以便您可以得到确切的答案。 –