每日一个js实例7--通过面向对象实现选项卡
2016-11-02 10:04
477 查看
<div id="box">
<input type="button" value="1" class="active">
<input type="button" value="2">
<input type="button" value="3">
<div style="display:block">1</div>
<div>2</div>
<div>3</div>
</div>
<style>
#box input{background: gray;}
#box div{width: 200px;height: 200px;border: 1px solid red;display: none}
#box .active{background: gold;}
</style>
<script>
//第一种写法将属性包装入构造函数中
// function Tab(id){
// //面向对象中属性可称为变量,方法称为函数
// this.oBox=document.getElementById(id);
// this.aInput=this.oBox.getElementsByTagName("input");
// this.aDiv=this.oBox.getElementsByTagName("div");
// for(var i=0;i<this.aInput.length;i++){
// this.aInput[i].index=i;
// var _this=this;
// this.aInput[i].onclick=function(){
// for(var i=0;i<_this.aInput.length;i++){
// _this.aInput[i].className="";
// _this.aDiv[i].style.display="none";
// }
// _this.aInput[this.index].className="active";
// _this.aDiv[this.index].style.display="block";
// }
// }
// }
// var tab=new Tab("box");
//第二种方法,属性在构造函数中申明,方法在原型对象中申明
// function Tab(id){
// //面向对象中属性可称为变量,方法称为函数
// this.oBox=document.getElementById(id);
// this.aInput=this.oBox.getElementsByTagName("input");
// this.aDiv=this.oBox.getElementsByTagName("div");
// //this.draw();//在此调用可以
// }
// Tab.prototype.draw=function(){
// constructor:Tab;
// for(var i=0;i<this.aInput.length;i++){
// this.aInput[i].index=i;
// var _this=this;
// this.aInput[i].onclick=function(){
// for(var i=0;i<_this.aInput.length;i++){
// _this.aInput[i].className="";
// _this.aDiv[i].style.display="none";
// }
// _this.aInput[this.index].className="active";
// _this.aDiv[this.index].style.display="block";
// }
// }
// }
// var tab=new Tab("box");
// tab.draw();//也可以再次调用
//第三种写法,属性与方法的一部分在构造函数中申明,方法另一部分在原型对象中申明
// function Tab(id){
// //面向对象中属性可称为变量,方法称为函数
// this.oBox=document.getElementById(id);
// this.aInput=this.oBox.getElementsByTagName("input");
// this.aDiv=this.oBox.getElementsByTagName("div");
// for(var i=0;i<this.aInput.length;i++){
// this.aInput[i].index=i;
// var _this=this;
// this.aInput[i].onclick=function(){
// _this.draw(this.index);
// }
// }
// }
// Tab.prototype.draw=function(index){
// for(var i=0;i<this.aInput.length;i++){
// this.aInput[i].className="";
// this.aDiv[i].style.display="none";
// }
// this.aInput[index].className="active";
// this.aDiv[index].style.display="block";
// }
// var tab=new Tab("box");
//第四种写法,属性与方法全部在构造函数中申明
function Tab(id){
this.oBox=document.getElementById(id);
this.aInput=this.oBox.getElementsByTagName("input");
this.aDiv=this.oBox.getElementsByTagName("div");
this.draw=function(){
for(var i=0;i<this.aInput.length;i++){
this.aInput[i].index=i;
var _this=this;
this.aInput[i].onclick=function(){
for(var i=0;i<_this.aInput.length;i++){
_this.aInput[i].className="";
_this.aDiv[i].style.display="none";
}
_this.aInput[this.index].className="active";
_this.aDiv[this.index].style.display="block";
}
}
}
this.draw();
}
var tab=new Tab("box");
//tab.draw();
</script>
<input type="button" value="1" class="active">
<input type="button" value="2">
<input type="button" value="3">
<div style="display:block">1</div>
<div>2</div>
<div>3</div>
</div>
<style>
#box input{background: gray;}
#box div{width: 200px;height: 200px;border: 1px solid red;display: none}
#box .active{background: gold;}
</style>
<script>
//第一种写法将属性包装入构造函数中
// function Tab(id){
// //面向对象中属性可称为变量,方法称为函数
// this.oBox=document.getElementById(id);
// this.aInput=this.oBox.getElementsByTagName("input");
// this.aDiv=this.oBox.getElementsByTagName("div");
// for(var i=0;i<this.aInput.length;i++){
// this.aInput[i].index=i;
// var _this=this;
// this.aInput[i].onclick=function(){
// for(var i=0;i<_this.aInput.length;i++){
// _this.aInput[i].className="";
// _this.aDiv[i].style.display="none";
// }
// _this.aInput[this.index].className="active";
// _this.aDiv[this.index].style.display="block";
// }
// }
// }
// var tab=new Tab("box");
//第二种方法,属性在构造函数中申明,方法在原型对象中申明
// function Tab(id){
// //面向对象中属性可称为变量,方法称为函数
// this.oBox=document.getElementById(id);
// this.aInput=this.oBox.getElementsByTagName("input");
// this.aDiv=this.oBox.getElementsByTagName("div");
// //this.draw();//在此调用可以
// }
// Tab.prototype.draw=function(){
// constructor:Tab;
// for(var i=0;i<this.aInput.length;i++){
// this.aInput[i].index=i;
// var _this=this;
// this.aInput[i].onclick=function(){
// for(var i=0;i<_this.aInput.length;i++){
// _this.aInput[i].className="";
// _this.aDiv[i].style.display="none";
// }
// _this.aInput[this.index].className="active";
// _this.aDiv[this.index].style.display="block";
// }
// }
// }
// var tab=new Tab("box");
// tab.draw();//也可以再次调用
//第三种写法,属性与方法的一部分在构造函数中申明,方法另一部分在原型对象中申明
// function Tab(id){
// //面向对象中属性可称为变量,方法称为函数
// this.oBox=document.getElementById(id);
// this.aInput=this.oBox.getElementsByTagName("input");
// this.aDiv=this.oBox.getElementsByTagName("div");
// for(var i=0;i<this.aInput.length;i++){
// this.aInput[i].index=i;
// var _this=this;
// this.aInput[i].onclick=function(){
// _this.draw(this.index);
// }
// }
// }
// Tab.prototype.draw=function(index){
// for(var i=0;i<this.aInput.length;i++){
// this.aInput[i].className="";
// this.aDiv[i].style.display="none";
// }
// this.aInput[index].className="active";
// this.aDiv[index].style.display="block";
// }
// var tab=new Tab("box");
//第四种写法,属性与方法全部在构造函数中申明
function Tab(id){
this.oBox=document.getElementById(id);
this.aInput=this.oBox.getElementsByTagName("input");
this.aDiv=this.oBox.getElementsByTagName("div");
this.draw=function(){
for(var i=0;i<this.aInput.length;i++){
this.aInput[i].index=i;
var _this=this;
this.aInput[i].onclick=function(){
for(var i=0;i<_this.aInput.length;i++){
_this.aInput[i].className="";
_this.aDiv[i].style.display="none";
}
_this.aInput[this.index].className="active";
_this.aDiv[this.index].style.display="block";
}
}
}
this.draw();
}
var tab=new Tab("box");
//tab.draw();
</script>
相关文章推荐
- 每日一个js实例5--通过面向对象实现运动
- JS实现同一个网页布局滑动门和TAB选项卡实例
- 通过互斥对象实现 只运行一个实例
- [Java实现]通过一个Java小程序(吃苹果)深入理解面向对象思想
- js面向对象实例(实现简易版拖拽)
- JS实现同一个网页布局滑动门和TAB选项卡实例
- 每日一个js实例13--通过曲线反应json数据
- 每日一个js实例2--js与jq实现走马灯
- 每日一个js实例1---纯js与canvas实现心电图网格绘制
- js 面向对象实现多个“倒计时器”
- js面向对象经典实例
- Java中如何实现一个类在内存里只能创建一个实例对象
- 设计一个string类,通过重载“+=”运算符,实现对两个string类对象m1,m2的操作。
- 简单工厂(Factory)-提供一个创建对象实例的功能,而无须关心其具体实现。被创建实例的类型可以是接口、抽象类,也可以是具体的类。
- JS面向对象应用一(界面分离JS,多语言及校验组件实现)
- 使用MVC中的HtmlHelper对象的ActionLink方法,实现一个Javascript:void(0)效果,去调用一个JS方法
- 使用jquery来实现JS的类面向对象
- 用Js Dom实现通过用户输入行数和列数,生成一个表格
- (转载)JS面向对象实现
- 实现 一个类,使得该类任何形式的 派生类 无论怎么定义和实现,都无法产生任何对象 实例 (原创)