我正在尝试按照javascript循环运行,但它不起作用:
function column_total()
{
alert("In column_total method");
var row1val=0,row2val=0,row3val=0,row4val=0,row5val=7,row6val=0,row7val=0,row8val=0,row9val=0,row10val=0,row11val=0,row12val=0;
for(i=1;i<=12;i++)
{
for(j=i;j<=i;j++)
{
alert("In j loop");
row"+j+"val += parseFloat(document.getElementById('p'"+i+").value);
row"+j+"val += parseFloat(document.getElementById('d'"+i+").value);
row"+j+"val += parseFloat(document.getElementById('o'"+i").value);
document.getElementById('t1').value=row"+i+"val;
}
var rowtotalval=row1val+row2val+row3val+row4val+row5val+row6val+row7val+row8val+row9val+row10val+row11val+row12val;
return true;
}
}
在html中,我通过textbox t1的onfocus
属性调用代码,这里是html代码:
<input type="text" name="p1" id="p1"></input>
<input type="text" name="p2" id="p2"></input>
<input type="text" name="d1" id="d1" ></input>
<input type="text" name="d2" id="d2" ></input>
<input type="text" name="o1" id="o1" ></input>
<input type="text" name="o2" id="o2" ></input>
<input type="text" name="t1" id="t1" onfocus="column_total()"></input>
答案 0 :(得分:1)
row&#34; + j +&#34; val - 这对于javascript
是不正确的答案 1 :(得分:0)
您应该使用数组而不是row"+j+"val
。您尝试使用的这种“动态”变量名称语法不存在。
例如,您可以使用名为rowval
的数组,并使用rowval[j] += parseFloat(document.getElementById('p'"+i+").value)
为其分配值。
你也可以使用eval
或this[row"+j+"val] += x
做类似的事情,但我认为没有必要在这里使用与普通数组不同的任何东西。