为了账号安全,请及时绑定邮箱和手机立即绑定

this.className = "active"和aLi[i].className = "active";的区别

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>实践题 - 选项卡</title>
    <style type="text/css">
     /* CSS样式制作 */  
*{margin:0;padding:0;font:normal 12px "微软雅黑";color:#000000;}
ul{list-style-type: none;}
    a{text-decoration: none;}

#tab-list{width: 275px;height:190px;margin: 20px auto;}
    #ul1{border-bottom: 2px solid #842;height: 32px;}
/*#ul1 li{margin-left:5px;padding:0 10px;float:left;line-height:30px;border:1px solid #bbf;}*/
    #ul1 li{display: inline-block;width: 60px;line-height: 30px;text-align: center;border: 1px solid #999;border-bottom: none;margin-left: 5px;}
#ul1 li:hover{cursor: pointer;}
#ul1 li.active{border-top:2px solid #900;border-bottom:2px solid #FFFFFF;}

    #tab-list div{border:1px solid #bbf;height:150px;border-top:none;}
#tab-list div li{height:30px;line-height:30px;text-indent:8px}
.show{display: block;}.hide{display:none}
    </style>
    <script type="text/javascript">
         
    // JS实现选项卡切换
window.onload = function(){
var aLi = document.getElementById("ul1").getElementsByTagName("li");
var aDiv = document.getElementById("tab-list").getElementsByTagName("div");
for(var i=0;i<aLi.length;i++){
aLi[i].index = i;
aLi[i].onmouseover = function(){
for(var i=0;i<aLi.length;i++){
aLi[i].className = "";
aDiv[i].className = "hide";
}
this.className = "active";
aDiv[this.index].className = "show";
}
}
}
//  aLi[i].index = i;不加不会显示
// this.className = "active";tab[i].className = "active";区别

    </script>
 
</head>
<body>
<!-- HTML页面布局 -->
<div id="tab-list">
    <ul id="ul1">
        <li id="tag1" onclick="fc()">房产</li><li id="tag2" onclick="jj()">家居</li id="tag3" onclick="esf()"><li>二手房</li>
    </ul>
    <div id="first">
        <ul>
            <li><a href="javascript:;">275万购昌平邻铁三居 总价20万买一居</a></li>
            <li><a href="javascript:;">200万内购五环三居 140万安家东三环</a></li>
            <li><a href="javascript:;">北京首现零首付楼盘 53万购东5环50平</a></li>
            <li><a href="javascript:;">京楼盘直降5000 中信府 公园楼王现房</a></li>
        </ul>
    </div>
    <div id="second">
        <ul>
            <li><a href="javascript:;">40平出租屋大改造 美少女的混搭小窝</a></li>
            <li><a href="javascript:;">经典清新简欧爱家 90平老房焕发新生</a></li>
            <li><a href="javascript:;">新中式的酷色温情 66平撞色活泼家居</a></li>
            <li><a href="javascript:;">瓷砖就像选好老婆 卫生间烟道的设计</a></li>
        </ul>
    </div>
    <div id="third">
        <ul>
            <li><a href="javascript:;">通州豪华3居260万 二环稀缺2居250w甩</a></li>
            <li><a href="javascript:;">西3环通透2居290万 130万2居限量抢购</a></li>
            <li><a href="javascript:;">黄城根小学学区仅260万 121平70万抛!</a></li>
            <li><a href="javascript:;">独家别墅280万 苏州桥2居优惠价248万</a></li>
        </ul>
    </div>
</div>
</body>
</html>

有2个问题

  1. this.className = "active"换成aLi[i].className = "active";为什么就没有用。

  2. aLi[i].index = i;不加,把aDiv[this.index].className = "show";换成aDiv[i].className = "show"就没有用。

~~~~~~~~~~~~~~~~~~~求大神~~~~~~~~~~~~~~~~~~~

正在回答

1 回答

window.onload = function(){

var aLi = document.getElementById("ul1").getElementsByTagName("li");

var aDiv = document.getElementById("tab-list").getElementsByTagName("div");

for(var i=0;i<aLi.length;i++){

aLi[i].index = i;

aLi[i].onclick = function(){

for(var i=0;i<aLi.length;i++){

aLi[i].className = "";

aDiv[i].className = "hide";

}

alert(i);

//aLi[i].className = "active";

//aDiv[aLi[i].index].className = "show";

}

}

}


你这样显示一下i,无论怎样都是3,因为经过了for循环,而aLi[i]=aLi[3]是不存在的,所以有问题。

而this值得是onclick前面的那个aLi[i];

至于index的作用按着这个理解就是用来同步却换的。

0 回复 有任何疑惑可以回复我~
#1

过去丶 提问者

for(var i=0;i<aLi.length;i++){ aLi[i].onclick = function(){ alert(i); } } 大神,不应该是这样么。假设i=1时,被击中,不应该直接弹出数字1么,然后再进行i++,变成2。
2016-11-30 回复 有任何疑惑可以回复我~
#2

老友丶 回复 过去丶 提问者

alert(i);加在for循环之后,//aLi[i].className = "active"; //aDiv[aLi[i].index].className = "show"; 这两个操作之前,只要执行了for循环i就等于3了
2016-11-30 回复 有任何疑惑可以回复我~
#3

过去丶 提问者 回复 老友丶

c java都是这种算法么
2016-12-01 回复 有任何疑惑可以回复我~
#4

老友丶 回复 过去丶 提问者

c是这样的 Java不了解
2016-12-01 回复 有任何疑惑可以回复我~
#5

过去丶 提问者

非常感谢!
2016-12-02 回复 有任何疑惑可以回复我~
查看2条回复

举报

0/150
提交
取消

this.className = "active"和aLi[i].className = "active";的区别

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号