<SCRIPT LANGUAGE="JavaScript">
  <!--
var n=<%=rownum%>;
var m=<%=arr_linei%>;
var b=0
  //-->
  function linesum(){  for(var j=0;j<m;j++){
  var agocost,sumcost,totalcost,i;
  sumcost="input2_"+j+"_0";
  cost="input4_0"
  if(document.getElementById(sumcost).value!=""){
  s=parseFloat(document.getElementById(sumcost).value);
  b=b+s;
  document.getElementById(cost).value=b;
  }
  }
  }
</script>
上面函数可以id=input4_0的值等于id为input2_"+j+"_0的值的和
当如果0变成变量该如何改这个函数写法,我写的有问题,如下:
function linesum(i){  for(var j=0;j<m;j++){
  for(var i=0;i<n;i++){
  var agocost,sumcost,totalcost,i;
  sumcost="input2_"+j+"_"+i;
  cost="input4_"+i;
  if(document.getElementById(sumcost).value!=""){
  s=parseFloat(document.getElementById(sumcost).value);
  b=b+s;
  document.getElementById(cost).value=b;
  }
  }
  }
</script>

解决方案 »

  1.   

    function linesum(i){  for(var j=0;j<m;j++){
      for(var i=0;i<n;i++){
      var agocost,sumcost,totalcost,i;
      sumcost="input2_"+j+"_"+i;
      cost="input4_"+i;
      if(document.getElementById(sumcost).value!=""){
      s=parseFloat(document.getElementById(sumcost).value);
      b=b+s;
      document.getElementById(cost).value=b;
      }
      }
      }歧义引用了 
    吧函数参数的变量名改掉 以后要注意下 函数的形参参数名用有意义的
      

  2.   

    这样写才合乎LZ你想要的逻辑吧
    function linesum(){
    var agocost, sumcost, totalcost;
    for(var i = 0; i < n; i++){
    agocost = document.getElementById("input4_" + i);
    totalcost = 0;
    for(var j = 0; j < m; j++){
    sumcost = document.getElementById("input2_" + i + "_" + j).value;
    if(sumcost != ""){
    totalcost += parseFloat(sumcost);
    }
    }
    agocost.value = totalcost;
    }
    }
      

  3.   

    var n=<%=rownum%>;
    var m=<%=arr_linei%>;
    var b=0;function linesum(){  for(var j=0;j<m;j++){
           for(var i=0;i<n;i++){
                //var agocost,sumcost,totalcost,i;
                sumcost="input2_"+j+"_"+i;
                cost="input4_"+i;
                if(document.getElementById(sumcost).value!=""){
                  s=parseFloat(document.getElementById(sumcost).value);
                  b+=s;
                }
                document.getElementById(cost).value=b;
            }
       }
    }关键问题 你上面的 n的数量 是算上统计格子完整的列数吗