当点击的时候先执行ttlOn(n),然后执行到ttlOn(n)里的change(),就跳到change()执行里面的,执行完change()后是不是就直接跳到ttlOn(n)函数的document.getElementById(ctn).style.display="block";  这一行啊?而不执行document.getElementById(ctn).style.display="block";之前的.这样分析对吗?
<!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" />
<title>无标题文档</title>
                                   
<style type="text/css">
ul{list-style:none;}
*{margin:0;padding:0;}
</style>

 <script type="text/javascript">
 
function ttlOn(n){
//var ttl = "ttl"+n;
var ctn = "ctn"+n;
change();
document.getElementById(ctn).style.display="block";

}
function change(){
for(var i=1; i<6; i++){
var ctn = "ctn"+i;
document.getElementById(ctn).style.display="none";
}
} </script></head>
<body><div class="ttl">
<ul>
<li id="ttl1" onclick="ttlOn(1); return false;" class="current">Title01</li>
<li id="ttl2" onclick="ttlOn(2); return false;">Title02</li>
<li id="ttl3" onclick="ttlOn(3); return false;">Title03</li>
<li id="ttl4" onclick="ttlOn(4); return false;">Title04</li>
<li id="ttl5" onclick="ttlOn(5); return false;">Title05</li>
</ul>
</div><div style="clear:both; font-size:0; line-height:0"></div>
<div class="ctn">
<p id="ctn1" style="display:block">星期一<br />111</p>
<p id="ctn2" style="display:none">星期二<br />222</p>
<p id="ctn3" style="display:none">星期三<br />333</p>
<p id="ctn4" style="display:none">星期四<br />444</p>
<p id="ctn5" style="display:none">星期五<br />555</p>
</div>
   

</body>
</html>

解决方案 »

  1.   

          luxu001207,我怎么误导了呢?我觉得你是在装我的语言空子或牛角尖啊,FOR最好不用,和不用FOR循环,会是一个意思吗?(for最好不用!=不用for),而且论坛里说的语言不是很精确也是很正确的,我们又不是研究文字游戏的,量词,形容词的度把握不好也是正常的!你也不能这么冤枉人,装人家的空子吧!      我的意思是:能不用循环当然尽可能不用,你看看JS排序算法里,是循环多的快还是循环少的快,还是没循环的来得快!能简化就简化代码,能不循环就不循环,这都有错,那请问什么是对的?      呵呵,luxu001207,你是学文科的吧!有些东西看懂了就好,没必要太较真了,对吧!