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

求教,代码何处出错,为何Chrome下无效果,IE9下,鼠标一碰全部display:none

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>实践题 - 选项卡</title>
    <style type="text/css">
     /* CSS样式制作 */  
        *{padding:0;margin:0;font:12px normal "microsoft yahei";}
        #wrap {width:290px;padding:5px;height:150px;margin:20px;}
        #wrap ul {list-style:none;display:block;height:30px;line-height:30px;border-bottom:2px saddlebrown solid;}
        #wrap ul li {background:#fff;cursor:pointer; float:left;height:28px;width:50px;line-height:28px;text-align:center;margin:0 3px;border:1px solid #aaa;border-bottom:none;}
        #wrap ul li.on {border-top:2px solid saddlebrown;border-bottom:2px solid #fff;}
        #wrap 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 wrap = document.getElementById("wrap");
        var getUl = wrap.document.getElementById("ul1");
        var getLi = getUl.document.getElementsByTagName("li");
        var getDiv = wrap.document.getElementsByTagName("div");
    // JS实现选项卡切换
        for (var i = 0; i < getLi.length; i++) {
            getLi[i].index = i; //自定义 index ,为以后的操作做准备
            getLi[i].onmouseover = function() {
                 for (var j = 0; j < getLi.length; j++) {
                     getLi[j].className = "";
                     getDiv[j].className = "hide";
                 }
                 this.className = "on";
                 getDiv[this.index].className = "";
            }
        }
    }
    </script>
 
</head>
<body>
<!-- HTML页面布局 -->
<div id="wrap">
    <ul id="ul1">
        <li class="on">房產</li>
        <li>家居</li>
        <li>二手樓</li>
    </ul>
    <div>
        <a href="javascript:;">275万购昌平邻铁三居 总价20万买一居</a><br/>
        <a href="javascript:;">200万内购五环三居 140万安家东三环</a><br/>
        <a href="javascript:;">北京首现零首付楼盘 53万购东5环50平</a><br/>
        <a href="javascript:;">京楼盘直降5000 中信府 公园楼王现房</a>
    </div>    
    <div class="hide">
        <a href="javascript:;">40平出租屋大改造 美少女的混搭小窝</a><br/>
        <a href="javascript:;">经典清新简欧爱家 90平老房焕发新生</a><br/>
        <a href="javascript:;">新中式的酷色温情 66平撞色活泼家居</a><br/>
        <a href="javascript:;">瓷砖就像选好老婆 卫生间烟道的设计</a>
    </div>    
    <div class="hide">
        <a href="javascript:;">通州豪华3居260万 二环稀缺2居250w甩</a><br/>
        <a href="javascript:;">西3环通透2居290万 130万2居限量抢购</a><br/>
        <a href="javascript:;">黄城根小学学区仅260万 121平70万抛!</a><br/>
        <a href="javascript:;">独家别墅280万 苏州桥2居优惠价248万</a>
    </div>
</div>
</body>
</html>


正在回答

1 回答

获取变量的用法错啦~

var getUl = document.getElementById("ul1");

var getLi = getUl.getElementsByTagName("li");

var getDiv = wrap.getElementsByTagName("div");

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

_Mok 提问者

还是不行,错误是:Uncaught TypeError:Cannot read property 'getElementsByTagName' of undefined 凡是getElementsByTagName前面有东西的都会报这错。 最后我索性前面不加了,在后面索引 + 1 算了。问题来了:如果有很多很多Div时,麻烦就大了,不明白自己在getElementsByTagName加约束就报错,复制人家的代码就不报错。。。。。。 getDiv[j + 1].className = "hide"; ​getDiv[this.index + 1].className = "";
2015-07-02 回复 有任何疑惑可以回复我~
#2

_Mok 提问者

对照清楚后,秒懂,对象用错了,不用document,在新定义的变量下,感谢大神~
2015-07-02 回复 有任何疑惑可以回复我~
#3

_Mok 提问者

非常感谢!帮大忙了~
2015-07-02 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

求教,代码何处出错,为何Chrome下无效果,IE9下,鼠标一碰全部display:none

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