求大神们看看这段编的问题出在哪里?

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
    #div1 div{width: 200px; height: 300px; display: none; background: grey;}
    .active{background: yellow;}
</style>
<script type="text/javascript">
window.onload=function () 
{
    var oDiv=document.getElementById('div1');
    var iBut=oDiv.getElementsByTagName('input');
    var aDiv=oDiv.getElementsByTagName('div');
    for(i in iBut)
    {
        iBut[i].index=i;
        iBut[i].onclick=function()
        {
            for(i in iBut)
                {
                    iBut[i].className="";
                aDiv[i].style.display="none";
                }
            this.className="active";
            aDiv[this.index].style.display="block";
        }
    }
}
</script>
</head>
<body>
<div id="div1">
    <input type="button" value="教育">
    <input type="button" value="培训">
    <input type="button" value="招生">
    <input type="button" value="出国">
    <div style="display:block">1111</div>
    <div>2222</div>
    <div>3333</div>
    <div>4444</div>
</div>
</body>
</html>

aDiv[i].style.display="none";请问为何这一句浏览器一直报错呢,找了2小时都没找到问题所在。。

阅读 1.3k
评论
    8 个回答
    • 3.2k

    题主不如研究下for的用法?

    你的iBut是一个HTMLCollection,使用for对其循环的的话,除了以数字标注的子项以外,还有item、namedItem、length三个属性会被取出来。

    你的这个需求,建议用foreach

      相似问题
      推荐文章