javascript - 在javascript中计算表格最后一列中输入值的总和
问题描述
总结我表格最后一列中的动态输入值。如果我对数值进行硬编码,那么计算就可以了。如果我使用 a 输入我自己的值,我会得到 NaN
我用过
我的 html 表在加载时添加,并根据需要通过按钮添加行。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<table id='table' border="1">
<tr>
<th>RO#</th>
<th>Work</th>
<th>Time</th>
</tr>
<tr>
<td>615235</td>
<td>lof, rotate</td>
<!-- <td>23</td> -->
<td><input type="number" /></td>
</tr>
<tr>
<td>6154879</td>
<td>engine, trans</td>
<!-- <td>23</td> -->
<td><input typ="number" /></td>
</tr>
<tr>
<td>6158978</td>
<td>rotate, serp belt, timing belt</td>
<!-- <td>23</td> -->
<td><input type="number" /></td>
</tr>
</table>
<br>
<button onclick='calculate()'>Calculate</button>
<script>
function calculate() {
let tbl = document.getElementById('table'),
sumVal = 0;
for (let i = 1; i < tbl.rows.length; i++) {
sumVal = sumVal + parseInt(tbl.rows[i].cells[2].input);
}
console.log(sumVal);
}
</script>
</body>
</html>
我NaN
在使用<td><input type="number or type="text"><td>
代码时得到
解决方案
问题是该input
属性不存在于tbl.rows[i].cells[2]
. 老实说,我不知道是否可以从您尝试使用的表格单元格集合中获取输入值。
我建议使用这种方法,querySelectorAll
在其中我们指定要从中获取数据的输入:
function calculate() {
let tbl = document.querySelectorAll("table input[type='number']"),
sumVal = 0;
for (let i = 0; i < tbl.length; i++) {
sumVal += Number(tbl[i].value);
}
console.log(sumVal);
}
推荐阅读
- ios - Date对象Swift中的时区
- r - 在长数据集中添加两个分类变量的行?
- java - 当使用 @Around 方面然后 RestController 返回空响应
- python - 将现有的 Django 项目转移到 FastAPI 是个好主意吗?
- node.js - 用 logicJS 实现 logicjs-list-spread(基本 node.js 包使用)
- tensorflow - 在 tensorflow / pytorch 中将一个列表与其他两个列表切片
- javascript - 由于 MIME 类型,未加载样式表
- python - K-Means 聚类如何帮助分析 word2vec 嵌入?
- reactjs - 将构建文件从 React 容器复制到 NGINX 容器后,是否可以热重新加载 React 应用程序?
- if-statement - Google Sheet ARRAYFORMULA(IF(ISBLANK 返回错误