这是异步回发返回的json字符串:{"Results": { "types": [{"TypeName":"冠天下系列","TypeID":"3"},{"TypeName":"抢新系列","TypeID":"4"},{"TypeName":"中国好韵系列","TypeID":"5"}]}}
这是一个comboBox onchange时调用的函数
function BindChild(id)
{
    if(id==0)
    {
       var obj=document.getElementById("ddlChild");
       obj.options.length=0;
       var init = new Option("请选择一个子类","0");
       obj.options.add(init);
    }
    else
    {
       if(xmlhttp)
        {
            var url = requestURL+id;
            xmlhttp.open("get", url, true);
            xmlhttp.onreadystatechange = LoadChildCallBack; 
            xmlhttp.send(null);
            var obj=document.getElementById("ddlChild");
            obj.options.length=0;
            var init = new Option("请选择一个子类","0");
            obj.options.add(init);
        }
    }
}
function LoadChildCallBack(response)
{
    
    if(xmlhttp.readyState == 4) 
        {
            if(xmlhttp.status ==200)
            {
              eval("var objResults = " + xmlhttp.responseText);
              var obj=document.getElementById("ddlChild");
              for (var i=0; i < objResults.Results.types.length; i++)
              {
                var opt = new Option(objResults.Results.types[i].TypeName,objResults.Results.types[i].TypeID);
                obj.options.add(opt);
              }       
            }
        }
}
可是js调试老是说缺少":" 在eval("var objResults = " + xmlhttp.responseText);这一句
大家帮我看看错在哪

解决方案 »

  1.   

    把这个打印出来"var objResults = " + xmlhttp.responseText
    看语法是否正确
      

  2.   

    alert("var objResults = " + xmlhttp.responseText)
    看语法是否正确
      

  3.   


    返回的 json 串不差":"<script language="javascript">
    eval('var objResults = {"Results": { "types": [{"TypeName":"冠天下系列","TypeID":"3"},{"TypeName":"抢新系列","TypeID":"4"},{"TypeName":"中国好韵系列","TypeID":"5"}]}}')alert(objResults.Results.types.length)
    </script>