for (i=0;i<p.length;i++) //一共有多少行 { var sum = 0; for (v=1;v<=3;v++) //假设有三列,id假设都是b1,b2,b3 { sum+=parseFloat(document.all("b"+v)[i].innerText) document.getElementsByName("c1")[i].innerText = sum }} 这样就可以了。
每次换行的时候,让sum = 0 ,重新算就可以了
#11 把问题叙述得很清楚,解法如下:L@_@K var rowSum; for (var i=0; i < p.length; i++) // p.length 总行数。 { rowSum = 0; for (var v = 1; v <= 3; v++) // 假设有三列,id假设都是b1,b2,b3 { rowSum += parseFloat(document.all("b"+v)[i].innerText) } document.getElementsByName("c1")[i].innerText = rowSum; }
document.getElementsByName("c1")[i].innerText = sum;
相当于document.getElementsByName("c1")[i].innerText= document.getElementsByName("c1")[i].innerText+ xxx所以就成了连接,而绝对不是你要的parseFloat然后相加,它不会给你parseFloat的!
因为列数不固定这里用到了循环比如某个表格 ,结果等于单价1+单价2+单价3 单价1 单价2 单价3 结果
1 2 3 6
1 5 7 13
如果先赋值sum+=xxxx
因为用到了循环,在第二列的时候结果就是19,(13+6)
怎么让连接符号变成加号?
循环是另一个问题,需要 lz 自己思考!要不你把工资给俺,俺把代码给你,哈哈
呵呵,俺不是专业的程序员啊,业余的,小弟愚昧,还请各位再指点指点,谢谢这是我的代码for (i=0;i<p.length;i++) //一共有多少行
{for (v=1;v<=3;v++) //假设有三列,id假设都是b1,b2,b3
{
document.getElementsByName("c1")[i].innerText+=parseFloat(document.all("b"+v)[i].innerText)}}
因为document.getElementsByName("c1")[i].innerText是字符类型,加号变成连接符号了,如果改为for (i=0;i<p.length;i++) //一共有多少行
{for (v=1;v<=3;v++) //假设有三列,id假设都是b1,b2,b3
{
var sum+=+=parseFloat(document.all("b"+v)[i].innerText)
document.all(c1)[i].innerText=sum
}}
sum的值就是c1所有的值求和了,如第三行的c1的值就变成了document.all(c1)[0].innerText+document.all(c1)[1].innerText+document.all(c1)[2].innerText
好像也如你所说,最后也是c1的总和吧?
先说说你想实现什么吧然后再帮你分析!
1 2 3 6
2 3 5 10其中C1的值是通过JS实现的每行的C1的值都等于该行b1+b2+b3
如果是
var sum+=parseFloat(document.all("b"+v)[i].innerText)
document.getElementsByName("c1")[i].innerText = sum那第二行就变成了16,而我希望得到的结果是10
再复制下我的代码,谢谢各位了,让+号变成加法,而不是连接,同时每行C1的值都等于该行B1+B2+B3for (i=0;i<p.length;i++) //一共有多少行
{for (v=1;v<=3;v++) //假设有三列,id假设都是b1,b2,b3
{
document.getElementsByName("c1")[i].innerText+=parseFloat(document.all("b"+v)[i].innerText)}}
{
var sum = 0;
for (v=1;v<=3;v++) //假设有三列,id假设都是b1,b2,b3
{
sum+=parseFloat(document.all("b"+v)[i].innerText)
document.getElementsByName("c1")[i].innerText = sum
}}
这样就可以了。
var rowSum;
for (var i=0; i < p.length; i++) // p.length 总行数。
{
rowSum = 0;
for (var v = 1; v <= 3; v++) // 假设有三列,id假设都是b1,b2,b3
{
rowSum += parseFloat(document.all("b"+v)[i].innerText)
}
document.getElementsByName("c1")[i].innerText = rowSum;
}