1.传统方式编写选项卡
<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">
*{margin: 0;padding: 0}
#box{
height: 100px;
width: 250px;
margin: 50px auto;
}
#box input[type=button]{
width: 20px;
height: 20px;
}
#box .backcolor{
background-color: red;
}
#container{
width: 250px;
height: 100px;
}
#container div{
width: 250px;
height: 100px;
border: 1px solid;
position: absolute;
display: none;
}
#container .active{
display: block;
}
</style>
</head>
<body>
<div id="box">
<input type="button" value="1" class="backcolor">
<input type="button" value="2">
<input type="button" value="3">
<div id="container">
<div class="active">111</div>
<div>222</div>
<div>333</div>
</div>
</div>
<script type="text/javascript">
var aBtn = document.getElementsByTagName('input');
var oDiv = document.getElementById('container');
var aCon = oDiv.getElementsByTagName('div');
for(var i=0; i<aBtn.length; i++){
aBtn[i].index = i;
aBtn[i].onclick = function(){
for(var i=0; i<aBtn.length; i++){
aBtn[i].className = '';
aCon[i].style.display = 'none';
}
this.className = 'backcolor';
aCon[this.index].style.display = 'block';
}
}
</script>
</body>
</html>
效果展示
2.传统选项卡的变形
<script type="text/javascript">
var aBtn = null;
var oDiv = null;
var aCon = null;
window.onload = function(){
aBtn = document.getElementsByTagName('input');
oDiv = document.getElementById('container');
aCon = oDiv.getElementsByTagName('div');
init();
}
function init(){
for(var i=0; i<aBtn.length; i++){
aBtn[i].index = i;
aBtn[i].onclick = change;
}
}
function change(){
for(var i=0; i<aBtn.length; i++){
aBtn[i].className = '';
aCon[i].style.display = 'none';
}
this.className = 'backcolor';
aCon[this.index].style.display = 'block';
}
</script
效果展示
3.用面向对象封装传统选项卡
<script type="text/javascript">
var aBtn = null;
var oDiv = null;
var aCon = null;
function Tab(){
this.aBtn = document.getElementsByTagName('input');
this.oDiv = document.getElementById('container');
this.aCon = this.oDiv.getElementsByTagName('div');
}
Tab.prototype = {
init : function(){
var This = this;
for(var i=0; i<this.aBtn.length; i++){
this.aBtn[i].index = i;
this.aBtn[i].onclick = function(){
This.change(this);
}
}
},
change : function(obj){
for(var i=0; i<this.aBtn.length; i++){
this.aBtn[i].className = '';
this.aCon[i].style.display = 'none';
}
obj.className = 'backcolor';
this.aCon[obj.index].style.display = 'block';
}
}
var t1 = new Tab();
t1.init();
</script>
效果展示