当ctab[i] ==ctab[3]的时候,
ctab[i].onclick里面的循环是从3开始的吗?
也就是 var i=3
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
*{margin:0;padding:0;}
.clearfix:after {content:".";display:block;height:0;clear:both;visibility:hidden;} 
*html .clearfix{height:1%;}
*+html .clearfix{height:1%;}
.clearfix{display:inline-block;}  
.clearfix {display:block;} 
ul{margin:10px 10px 0;}
ul li{background:#ddd; list-style:none;padding-top:5px; vertical-align:bottom}
ul li a{padding:5px 10px;margin-left:5px;text-decoration:none;font-size:12px;color:#000;float:left;}
ul li .crent{background:#fff;color:#f60;}
p{display:none;border:1px solid #ddd;border-top:none;margin:0 10px 10px;padding:5px;}
</style>
<title>Example</title>
<script type="text/javascript">
function $(objID){    
    return "string" == typeof(objID) ? document.getElementById(objID) : objID;
    }
function addEvt(tab,ct){
    var ctab = $(tab).getElementsByTagName("a");
var cdiv = $(ct).getElementsByTagName("p");
    for(var i = 0;i<ctab.length;i++)
    { 
        ctab[i].onclick =function std(){
for(var i = 0;i<ctab.length;i++){
if(i!=parseInt(this.rel-1))
{
ctab[i].className="";
cdiv[i].style.display="none";
}
}
ctab[parseInt(this.rel)-1].className="crent";
cdiv[parseInt(this.rel)-1].style.display="block";
        }
    }
}
window.onload=function(){
addEvt("tab","ct");
}
</script>
</head>
<body>
<div id="all1">
  <ul class="ul_bigspace" id="tab">
<li class="clearfix">
<a href="#" class="crent" rel="1">平面设计</a>
<a href="#" rel="2">包装设计</a>
<a href="#" rel="3">影视广告片</a>
<a href="#" rel="4">媒介资源</a>
<a href="#" rel="5">网站设计</a>
<a href="#" rel="6">网站设计</a>
</li>
  </ul>
  <div id="ct">
<p style="display:block;">1</p>
<p>2</p>
<p>3</p>
<p>4</p>
<p>5</p>
<p>6</p>
  </div>
</div>
</body>
</html>

解决方案 »

  1.   

    引入Prototype库:
    ---------------        $("MenuBar").Reset = function() {            $$("#MenuBar td[tabIndex]").each(function(node) {
                    node.className = "right_menu_normal";
                    var container = $("MenuContainer:" + node.tabIndex);
                    node.MenuContainer.style.display = "none";
                });        }        $$("#MenuBar td[tabIndex]").each(function(node) {            var container = $("MenuContainer:" + node.tabIndex);
                node.MenuContainer = container;            node.SetSelected = function() {
                    this.className = "right_menu_hover";
                    this.MenuContainer.style.display = "block";
                }
                node.onclick = function() {
                    $("MenuBar").Reset();
                    this.SetSelected();
                }
                container.style.display = (node.className == "right_menu_hover") ? "block" : "none";
            });
      

  2.   


    function addEvt(tab,ct){
        var ctab = $(tab).getElementsByTagName("a");
        var cdiv = $(ct).getElementsByTagName("p");
        for(var i = 0;i<ctab.length;i++)
        { 
    alert("wai"+i);//
            ctab[i].onclick =function std(){            
                for(var i = 0;i<ctab.length;i++){
    alert("nei"+i);//
                    if(i!=parseInt(this.rel-1))
                    {
                        ctab[i].className="";
                        cdiv[i].style.display="none";                    
                    }
                }
                ctab[parseInt(this.rel)-1].className="crent";
                cdiv[parseInt(this.rel)-1].style.display="block";
            }
        }
    }加个alert自己测试不就知道了
      

  3.   

    这两个循环是没有问题的,
    for(var i = 0;i<ctab.length;i++)  //i的作用域是addEvt函数块里
        { 
            ctab[i].onclick =function std(){            
                for(var i = 0;i<ctab.length;i++){   //i的作用域是onclick函数块里
                    if(i!=parseInt(this.rel-1))
                    {
                        ctab[i].className="";
                        cdiv[i].style.display="none";                    
                    }
                }
                ctab[parseInt(this.rel)-1].className="crent";
                cdiv[parseInt(this.rel)-1].style.display="block";
            }
        }
      

  4.   

    for(var i = 0;i<ctab.length;i++){
     是从0开始的!2个循环是相互独立的!不会冲突