tab选项卡(解决问题 i总是最后一个)

1
2
3
4
5
6
var aLi = document.getElementsByTagName( 'li' );
for ( var i = 0; i < aLi.length; i++){
   aLi[i].onclick = function (){
     alert(i);
   }
}
点击li之后弹出的都是2。

以上是找到的解决方案  --- i总是最后一个

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        *{
            margin: 0;
            padding: 0;
            font-size:0;
        }
        .container{

        }
        .container .tab li{
            display: inline-block;
            width: 40px;
            height: 20px;
            color:red;
            /*background-color: Grey;*/
            border: 1px solid orangered;
            border-right-width: 0;
        }
        .container .tab li:last-child{
            border: 1px solid orangered;
        }
        .select{
            background-color: Grey;
        }
        .container .tab li a{
            text-decoration: none;

            font-size:14px;
        }
        .container .content li{
            /*display: block;*/
            width: 400px;
            height: 300px;
            border: 1px solid gray;
            font-size:14px;
            display: none;
        }
        /*.mod{*/
            /*display: none;*/
        /*}*/
        .container .content .live{
            display: block;
        }
    </style>
</head>
<body>
<div class="container">
    <ul class="tab">
        <li class="select"><a href="">item1</a></li>
        <li><a href="">item2</a></li>
        <li><a href="">item3</a></li>
        <li><a href="">item4</a></li>
    </ul>
    <ul class="content">
        <li class="mod live">item1 content</li>
        <li class="mod">item2 content</li>
        <li class="mod">item3 content</li>
        <li class="mod">item4 content</li>
    </ul>
</div>
<script>
    window.onload = function(){
        var tab = document.getElementsByClassName('tab');
        var tab_li = tab[0].getElementsByTagName('li');
        var content = document.getElementsByClassName('content');
        var content_li = content[0].getElementsByTagName('li');
        for(var i=0;i<tab_li.length;i++){
            /*?? 获取所有的li标签*/
            var self = tab_li[i];
            tab_li[i].onclick =(function() {
                 var self2 = self;
                 var item = i;
                 return function(){
                     /*??为什么self2 是对应的标签*/
                    //return test_alert(self2,item);
                     return showContent(self2,item);
                 };
            })(i);
        }
        function showContent(_this,item){
            for(var i=0;i<content_li.length;i++){
                tab_li[i].className='';
                content_li[i].className = '';
            }
            _this.className='select';
            content_li[item].className = 'live';
            /*return false??很重要的一点*/
            return false;
        }
        /*测试对应的li标签*/
        function test_alert(obj,len){
            console.log(obj);
            return false;
        }
    };
</script>
</body>
</html>

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值