嘎嘎,一处笔误,最内层滴 for 后面多了分号!!!
L@_@K
for(var p in list)
{
    for(var c in list[p])
    {
        for( var d in list[p][c] ); // 都是分号惹滴祸!
        {
            s.push(d);
        }
    }
}去掉分号就欧了!
var s = [];for(var p in list)
{
    document.write(p,"<br />");
    for(var c in list[p])
    {
        document.write(" ",c,"<br />");
        for(var d in list[p][c])
        {
    document.write("  ",d,"<br />");
            s.push(d);
        }
    }
}
alert(s);

解决方案 »

  1.   

    for( var d in list[p][c] );
    后面的;号去掉。
      

  2.   

    汗,确实是……主要是IE为什么会报不支持FOR IN的错误呢?
    第一轮省的for in是没问题的,后面几轮都会报错
      

  3.   

    实际代码var cities = list[this.options[this.selectedIndex].innerHTML];
    for(city in cities)
    {
    _self.city.options.add(new Option(city,cities[city].city_id));
    }
      

  4.   

    for(var city in cities) 

    _self.city.options.add(new Option(city,cities[city].city_id)); 
    }
    少了var?
      

  5.   

    呵呵,真奇怪,我IE7下,一打开页面,就报需要调试,然后断点定位在debugger上面了,强行运行,可以运行!!!将debugger注释掉,运行正常,无丝毫错误!
      

  6.   


    debugger是JS用来触发调试用的,和加断点差不多
      

  7.   

    IE 7 下一切正常,至于 cities[city].city_id 就不得而知?!
    测试代码如下
    L@_@K
    var s = [];
    debugger;var cities = list["山西省"];for(var city in cities)
    {
        //_self.city.options.add(new Option(city,cities[city].city_id));
    s.push(city);
    }
    alert(s);
      

  8.   

    maybe浏览器问题~~呵呵。你用的IE几?IE7下么的问题,FF下也没问题。谷歌浏览器下也没问题!
      

  9.   


    我也奇怪,我上面的测试代码一切没问题TO:jol_boy
    我用sarari,firefox,opera都测试过,完全没问题,就IE会报这错误,真是郁闷了……
      

  10.   

    出去了两天,早晨又试了下,解决了,错误就像7楼说的,在于for...in的时候,没有加上var,真不知道为什么写的时候会没写上,从来都写的按我的理解,没写var的话,作用域属于window,作为顶级对象的属性不能用来作遍历?不过我写的测试代码又不支持我的想法,哪位给说明一下原因呢?
    <!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>
    </head>
    <body>
    <script type="text/javascript">
        //以下代码一切正常
        var data = {name:"aaa",length:120};
        for(var a in data)
         alert(a);
        
        for(b in data)
         alert(b);
        
        for(window["c"] in data)
         alert(window["c"]);
    </script>
    </body>
    </html>
      

  11.   

    晕,IE 的 js 引擎报滴错有时并不准确,也许是其他错误导致滴,
    只要代码没有错,一般都能正确执行,
    不过不同浏览器滴js引擎在解释js代码时确实存在细微差别!
      

  12.   

    嗯,IE的JS报错是有点莫名其妙的,我是通过Visual Studio 2008调试的时候定位到那里的,加上var就好了,郁闷的