我在做项目中写了这么个全选函数
        //全选函数
        function SelAll(sender)
        {
            var chks=document.documentElement.getElementsByTagName("input");
            for(var i=0;i<chks.length;i++)
            {
               if(chks[i].id="cbx_sel")
               chks[i].checked=sender.checked;
            }
        }  
在没用到ajax的页面执行一切正常,在用了ajax的页面就出错,如果把函数改为
        //全选函数
        function SelAll(sender)
        {
            var chks=document.documentElement.getElementsByTagName("input");
            if(chks[0].id="cbx_sel")
            chks[0].checked=sender.checked;
        } 
就正常执行,chks.length的值俺看了也很正常,不知道这个问题是怎么回事哦!for循环不能用在ajax里?while循环我试过了,也不行

解决方案 »

  1.   

    if(chks[i].id="cbx_sel")  ??? 是 == 吧,不是=你的循环次数是多少?????附加个调试进程进IE里看看吧
      

  2.   

    TO:syeerzy
    上面提到过:在没用到ajax的页面执行一切正常,循环次数根据加载到GridView的数据量而不同,可能44次,也可能92次,或者别的
    目前还没有附加进程,主要是判断问题出在for循环这句上,不过这个函数在同一项目别的页面就是很好的,区别是别的页面没有用ajax,控件用的是DataGrid,但这不应该是原因吧
      

  3.   

    var chks=document.documentElement.getElementsByTagName("input");
    取得的是所有input(不仅仅是checkbox,还有button,file,text等等)
      

  4.   

    TO:tiewen(铁文)
    上面提到过:在没用到ajax的页面执行一切正常,用了 if(chks[0].id="cbx_sel") 来过滤
      

  5.   

    TO:liujiwe79(独孤求胜)
    我用的是vs2005,先启动IE,运行项目,再附加到进程之后既设不了断点,也没有相关的错误提示,不知道应该怎么做?
      

  6.   

    换了一种解决办法,在GridView之外加了一个"全选"的复选框,本贴问题仍未解决