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

關於這次編程的幾個疑問

<html>
<head>
    <meta charset="UTF-8">
    <title>实践题 - 选项卡</title>
    <style type="text/css">
    * {
        padding:0px;
        margin:0px;
        font:12px normal "microsoft yahei";
    }  
    #tabs {
        width:290px;
        padding:5px;
        height:150px; /*DIV框的高比內容的高還小,為什麼可以這樣?*/
        margin:20px;
    }
    #tabs ul {
        list-style:none;
        display:block; /*加這個幹嘛?ul不是本來就是塊級元素?*/
        height:30px;
        line-height:30px;
        border-bottom:2px saddlebrown solid; /*為何ul的border只圈住"房产"?ul到底是什麼?*/
    }
    #tabs ul li {
        background:#fff;
        cursor:pointer;
        float:left;
        list-style:none;
        height:28px;
        line-height:28px;
        margin:0px 3px;
        border:1px solid #aaaaaa;
        border-bottom:none;
        display:inline-block;
        width:60px;
        text-align:center;
    }
    #tabs ul li.on {
        border-top:2px solid saddlebrown;
        border-bottom:2px solid #fff;
    }
    #tabs div {
        height:120px;
        line-height:25px;
        border:1px solid #336699;
        border-top:none;
        padding:5px;
    }
    .hide {
        display:none;
    }
    </style>
    
    <script type="text/javascript">
    window.onload = function(){
        var oTab = document.getElementById("tabs");
        var oUl = oTab.getElementsByTagName("ul")[0];
        var oLis = oUl.getElementsByTagName("li");
        var oDivs = oTab.getElementsByTagName("div")
        for(var i=0,len=oLis.length; i<len; i++){
            oLis[i].index=i; //index本身能返回元素的位置,那為何不能直接使用、還要再賦值?
            oLis[i].onclick=function(){
                for(var n=0; n<len; n++){
                    oLis[n].className="";
                    oDivs[n].className="hide"
                }
                this.className="on";
                oDivs[this.index].className=""; //為何index要賦值才能用?
            }
        }
    }
    </script>
 
</head>
<body>
<div id="tabs">
    <ul>
        <li class="on">房产</li>
        <li>家居</li>
        <li>二手房</li>
    </ul>
    <div>
    275万购昌平邻铁三居 总价20万买一居<br />
    200万内购五环三居 140万安家东三环<br />
    北京首现零首付楼盘 53万购东5环50平<br />
    京楼盘直降5000 中信府 公园楼王现房<br />
    </div>
    <div class="hide">
    40平出租屋大改造 美少女的混搭小窝<br />
    经典清新简欧爱家 90平老房焕发新生<br />
    新中式的酷色温情 66平撞色活泼家居<br />
    瓷砖就像选好老婆 卫生间烟道的设计<br />
    </div>
    <div class="hide">
    通州豪华3居260万 二环稀缺2居250w甩<br />
    西3环通透2居290万 130万2居限量抢购<br />
    黄城根小学学区仅260万 121平70万抛!<br />
    独家别墅280万 苏州桥2居优惠价248万<br />
    </div>
</div>
</body>
<html>

正在回答

3 回答

 //為何index要賦值才能用?

最后一个, 是改变当前被选中的这个元素的 类 属性,  让这个DIV里面的内容不为"hiden"的类, 这样就能实现下面四行文字的变换了

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

/*DIV框的高比內容的高還小,為什麼可以這樣?*/

Rainy: DIV框是可以被内容撑大的,你可以设置成 overflow:hidden,就会隐藏掉超出部分,这个是CSS部分的知识

 /*加這個幹嘛?ul不是本來就是塊級元素?*/

Rainy: 在我现在的知识水平下, 我觉得是不用加这个,去掉没有影响

/*為何ul的border只圈住"房产"?ul到底是什麼?*/

Rainy:  “房产” 并不是通过UL来圈住,而是 li里面第一个 "on" 那个类里面实现圈住第一个的效果, 就是让li上下边框不一样显示

/*為何ul的border只圈住"房产"?ul到底是什麼?*/ 

Rainy: 这个我也在考虑, 想透了再和你交流

 //為何index要賦值才能用?

Rainy:因为, 浏览器要知道,你现在点中的是哪一个li。


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

index是返回(select)下拉列表中元素所处的位置

这里for(var i=0,len=oLis.length; i<len; i++)循环将三个导航(房产家居二手房)添加了索引,分别是0 1 2 

然后把index复制为“”是每次选中a后,此时再去选中b就将a还原为没选中时的状态,你把对应的代码注释掉再看效果就知道了

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

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468295    人
  • 解答问题       21893    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

關於這次編程的幾個疑問

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信