JS學習筆記 - 面向物件 - 選項卡 (普通選項卡改寫)
阿新 • • 發佈:2018-12-29
選項卡3
<script> window.onload=function () { new TabSwitch('div1'); }; function TabSwitch(id) // TabSwitch 是 id 的 物件?? { // var oDiv=document.getElementById('div1'); var oDiv=document.getElementById(id); this.aBtn=oDiv.getElementsByTagName('input'); // 變數 => 屬性 this.aDiv=oDiv.getElementsByTagName('div'); //去除了全域性變數 var aBtn = null; var aDiv = null; // 把aBtn / aDiv 變成了 TabSwitch函式的 屬性。 for(var i=0;i<this.aBtn.length;i++) { this.aBtn[i].index=i; this.aBtn[i].onclick = this.fnClick; // fnClick 寫成 this.fnClick //(這裡不再是函數了,是 TabSwitch的方法,所以要這樣寫) } }; //function fnClick(){}; => TabSwitch.prototype.fnClick=function (){}; // 函式 => 方法 TabSwitch.prototype.fnClick=function () // 給TabSwitch 新增 fnClick 這個方法 { for(var i=0;i<this.aBtn.length;i++) // aBtn.length => this.aBtn.length { this.aBtn[i].className='' this.aDiv[i].style.display='none'; } oBtn.className='active'; this.aDiv[oBtn.index].style.display='block'; } </script>
選項卡2
<script> var aBtn=null; // 全域性變數,window.onload 和 fnClick 都可以用 var aDiv=null; window.onload=function () { var oDiv=document.getElementById('div1'); aBtn=oDiv.getElementsByTagName('input'); //這裡獲取變數的內容,能在下面fnClick函式裡識別?? aDiv=oDiv.getElementsByTagName('div'); for(var i=0;i<aBtn.length;i++) { aBtn[i].index=i; aBtn[i].onclick=fnClick; } }; function fnClick() { for(var i=0;i<aBtn.length;i++) { aBtn[i].className='' aDiv[i].style.display='none'; } this.className='active'; aDiv[this.index].style.display='block'; } </script>