既然IE8+都没事怎么可能因为循环多导致的IE6出事了
去看看JS哪里不兼容吧
IE8跟IE6 7 JS有兼容性问题

解决方案 »

  1.   

    40多循环  不至于吧
    有个什么设备的方法 你试试
    类似
    for(var i=1;i<=100;i++){a[i]}
    改成
    for(var i=1;i<=10;i++){a[i++];.....这里总共是个a[i++]}
    试试
      

  2.   


    分页的话 后台就该麻烦了... 可以不用循环, 然后一个一个去id取value相加..
    可惜实在太麻烦
      

  3.   


    每个大题里的总分也要计算
    比如一个页面有11个大题..
    我那写法  
    $("select[id^=select_1_]").each(function(i){
         小模块总分 +=  $(this).val() 
    });
    然后写了11个...  A B C 有三套   所有  这就大概有33个循环了...
      

  4.   


    ie6会出现脚本崩溃的提示  问其是否继续
    继续的话  是可以的   不过用户肯定等不了那么久.如果按照你的计算方式的话分别计算 所有A的得分 B的得分 C的得分
    每个大题下的A的得分 B的得分 C的得分试一下用数组存储每个大题下的A的得分 B的得分 C的得分
    然后计算所有A的得分 B的得分 C的得分的时候用上面的数组进行求和
    应该会节省一点时间
      

  5.   

    不命名,就用序号嘛
    假定每个题目下的下拉文本对不等(你各处的都是3对)
    并假定每个题目都用一个 div 包裹,且每个对象都以命名(即 name 属性存在)则有原型
    a = [];
    $('div').each(function() {
      $(this).find('[name]').each(function(i){
        a[i] += $(this).val();
      });
    });数组 a 就是按对象次序的结果(偶数下标为 select 的值,奇数下标为 text 的)
    也可以分别取出
    总之只需遍历一遍 
      

  6.   

    认真看了看。
    本来就不该这么做的。
    你不会这样设几个变量。
    T1= [[],[],[]],
    T2 = [[],[],[]],根据事件(如click)把值push进去。
      

  7.   

    我仔细看了看代码
    其实主要问题是出现在 
    计算每个大题下的  所有小题加一起的分数
    这块使用的each循环很多.