javascript - 计算存储为数组的输入的和/差
问题描述
我有一个表格,表格中存储了大约 50 个类似元素。
对于每个项目,我有三个记录。
我已经在表格中获取了这样的元素:
$table="SELECT * from hoa_list";
$result=mysqli_query($db_conx,$table);
$i=1;
while($test = mysqli_fetch_array($result,MYSQLI_ASSOC))
{ ?>
<tr>
<td><input type="number" min="0" name="released[<?= $i ?>]" value="<?= $test['released']; ?>" onblur="recalculateSum();"></td>
<td><input type="number" min="0" name="spent[<?= $i ?>]" value="<?= $test['spent']; ?>" onblur="recalculateSum();"></td>
<td><input type="number" min="0" name="remain[<?= $i ?>]" value="<?= $test['remain']; ?>" readonly></td>
</tr>
<?php
$i++;
} ?>
对于每一行,我想计算第一个和第二个元素的差异,并在第三个只读输入中动态显示它。对于没有数组的元素,我使用了下面的代码
<script>
function recalculateSum()
{
var num1 = parseInt(document.getElementById("released").value);
var num2 = parseInt(document.getElementById("spent").value);
total = document.getElementById("remain").value = num1 + num2;
}
</script>
谁能帮我计算存储在表中的元素的差异,因为不可能对每个元素进行计算,因为有超过 50 行。我可以遍历每个第一个和第二个元素的任何代码计算其差异然后移动到下一行
解决方案
您可以简单地将函数转换为循环。
function recalculateSum(count) {
for (let i = 0; i < count; i++) {
var num1 = parseInt(document.getElementById(`released${i}`).value)
var num2 = parseInt(document.getElementById(`spent${i}`).value)
total = document.getElementById(`remain${i}`).value = num1 + num2
}
}
将它传递给数组的大小,它将根据元素的数量进行计算。
推荐阅读
- python - 安装 Requirements.txt 导致无效的语法错误 Python 3.7
- tsql - 仅当它们彼此相隔一周内时才对行求和
- visual-studio - 新dot net core 3.0预览控制台项目-堆栈溢出错误:VS 2019 16.2.0
- c++ - 在 CentOs 7 上安装 gcc 7.4.0 不会更新我的 libstdc++ 版本
- c++ - 如何正确将 GRC 块“随机源”的字节输出数据读入 C++ 中自己的 OOT 块?
- angular - 为 FormGroup 赋值并推送到 FormArray - 反应式表单
- javascript - Express/Node - 在将标头发送到客户端后无法设置标头
- python-3.x - 将python的默认版本从32位更改为64位
- angular - Angular:this.div.nativeElement 在发送到 API 后为空
- android - 带有“app:showAsAction="ifRoom|collapseActionView"”的 SearchView 有错误吗?