在ie8下可以执行,ie6不起作用,但是ie6下,加了alert(),就能执行正确,这是什么原因啊?

解决方案 »

  1.   

    是不是要延迟啊?你把要执行的东西放到timeout里面看看。
    我在ie7里面遇到加alert能执行的情况,没有alert看不到结果,呵呵
      

  2.   

    估计是加载问题,加了alert以后延迟了执行时间,已经加载完
    请检查函数执行时控件或者是ajax 返回值加载好了没有,是否为空
      

  3.   

    我把源码贴出来看看
    <script language = "JavaScript" type="text/javascript" defer="defer">
    var onecount;
    onecount=0;
    subcat = new Array();
    subcat[0] = new Array("测试1","1","31");
    subcat[1] = new Array("测试2","1","30");
    subcat[2] = new Array("测试3","1","29");
    subcat[3] = new Array("测试4","1","28");
    subcat[4] = new Array("测试5","1","25");
    subcat[5] = new Array("测试6","1","24");
    subcat[6] = new Array("测试7","1","23");
    subcat[7] = new Array("测试8","1","22");
    subcat[8] = new Array("测试9","1","21");
    onecount=9;function chgValue()
    {
    document.getElementById("smClass").length = 0; 
     var locationid=document.getElementById("bigClass").options[document.getElementById("bigClass").selectedIndex].value;
     var i;
     if(locationid=="0"){
      document.getElementById("smClass").style.display="none";
     }else {
     for (i=0;i < onecount; i++){
     if (subcat[i][1] == locationid){
      document.getElementById("smClass").style.display="block";
    if(subcat[i][2] == "0"){
    document.getElementById("smClass").style.display="none";
    }else if(subcat[i][2] == "21"){
    //document.all.smClass.options[document.all.smClass.length] = new Option(subcat[i][0], subcat[i][2],false,true);
    alert(i);
    document.getElementById("smClass").add(new Option(subcat[i][0], subcat[i][2],false,true));
    }else{
    document.getElementById("smClass").add(new Option(subcat[i][0], subcat[i][2],false,false));
    }
     }
     }
     }
    }    
    </script> <select id="bigClass" name="bigClass" class="cselect"   onchange="chgValue()">
    <option value="0">请选择类别</option>
    <option value="1" selected="selected">专业研究</option>
    </select>
    <select id="smClass" name="smClass"  class="cselect" style="display:none;" ></select>
      

  4.   

    alert执行的时候,第二个select中显示为“测试1”,这样是没加载完成吗?
      

  5.   

    脚本执行的时候,所引用的对象是否已经加载完毕?
    IE 下可加入defer属性 <script defer>试试看,做好脚本在window.onload中开始执行
      

  6.   

    问题找到了,真的是延时了,加一句 window.setTimeout('chgValue();',400)  就行了,谢谢大家