把面向过程的程序改写成面向对象的形式 用面向对象写选项卡

<!DOCTYPE html>
<html lang="en">
<head>
    <!-- 面向对象选项卡 -->
<!-- 
把面向过程的程序改写成面向对象的形式
原则:
不能有函数套函数,但可以有全局变量
过程
  onload -  构造函数
  全局变量 -  属性
  函数    - 方法
改错
    this 事件 闭包 传参
对象与闭包
    通过闭包传递this


 -->

    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>面向对象实例</title>
    <style>
        #div1 input{
            background-color: white;
        }
        
        #div1 input.active{
            background-color: yellow;
        }
    
        #div1 div{
            width:200px;
            height:200px;
            background-color: #CCC;
            
            display:none;
        }
        </style>
         <script>

            //   window.onload 初始化整个程序     构造函数 初始化整个对象

            //  变量                              属性
            //  函数                              方法

            //  对比以前的选项卡函数没有了嵌套
          
            window.onload=function(){
                new TabSwitch('div1');
            }

           function TabSwitch(id){

                var  _this=this;
                var oDiv=document.getElementById(id);
                this.aBtn=oDiv.getElementsByTagName ('input');//对象的所有属性都要加this;
                this.aDiv=oDiv.getElementsByTagName('div');
                
                for(var i=0;i<this.aBtn.length;i++)
                {
                    this.aBtn[i].index=i;
                    this.aBtn[i].onclick=function(){
                        _this.fnClick(this)
                            
                    }
            };

          TabSwitch.prototype.fnClick=function(oBtn){
             
                        for(var i=0;i<this.aBtn.length;i++)
                        {
                            this.aBtn[i].className=' ';
                            this.aDiv[i].style.display='none';
                        }
                        oBtn.className='active';
                        // console.log(this.index)
                        this.aDiv[oBtn.index].style.display="block";
                    }
                }

        </script>
</head>
<body>
     <!-- 
        
     -->
    <div id="div1">
        <input type="button" value="aaa"/>
        <input type="button" value="bbb"/>
        <input type="button" value="ccc"/>
        <div style=" display: block;">aaa</div>
        <div>asdaa</div>
        <div>aasda</div>
    </div>
    <!-- 

     -->
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值