思路:选项卡就是点击按钮切换到相应内容,如点击新闻1显示新闻1,点击新闻2显示新闻2。

HTML代码:

<div id="tabbox">
        <input class="a" type="button" value="新闻"/>
        <input type="button" value="娱乐"/>
        <input type="button" value="游戏"/>
        <input type="button" value="论坛"/>
        <div style="display: block;">我是新闻</div>
        <div>我是娱乐</div>
        <div>我是游戏</div>
        <div>我是论坛</div>
    </div>

CSS代码:

<style>
  #tabbox{
    width: 300px;
    height: 300px;
    margin: 100px auto;
    }
 #tabbox .a{
  background: yellow;/*确定按钮的点击状态*/ } #tabbox div{ height: 100px; width: 200px; border: 1px solid #000000; display: none;
  } </style>

JS代码:

1、首先获取元素Dom。

var Tab=document.getElementById('tabbox');
var Btn=Tab.getElementsByTagName('input')
var Box=Tab.getElementsByTagName('div');

2、for循环历遍按钮元素Btn,给Btn添加自定义属性index(这个代表按钮的索引值,就是可以以此确定按钮是第几个按钮)。

for(i=0;i<Btn.length;i++){
           Btn[i].index=i;
          }

 

3、因为点击当前按钮时会以高亮状态显示,所以要再通过for循环历遍把所有的按钮样式设置为空和把所有DIV的display设置为none。

for(i=0;i<Btn.length;i++){
         Btn[i].className='';
         Box[i].style.display='none';
       }

4、把当前按钮添加样式,把当前DIV显示出来,display设置为block; this.index就是点击按钮的索引,Box[this.index]就是点击按钮所对应的DIV。

this.className='a';
Box[this.index].style.display='block';

注:给多个元素添加多个事件要用for循环历遍。如选项卡是点击切换,当前按钮高度,点击和按钮高亮就是2个事件,所以要用2个for循环历遍。JS全部代码:

<script>
    window.onload=function(){
           var Tab=document.getElementById('tabbox');
           var Btn=Tab.getElementsByTagName('input')
           var Box=Tab.getElementsByTagName('div');

           for(i=0;i<Btn.length;i++){
              Btn[i].index=i;
               Btn[i].onclick=function(){
                   for(i=0;i<Btn.length;i++){
                       Btn[i].className='';
                       Box[i].style.display='none';
                   }
                   this.className='a';
                   Box[this.index].style.display='block';
               }
           }
            }
</script>

 

posted on 2016-09-13 11:40  陌路凡歌  阅读(258)  评论(1编辑  收藏  举报