javascript - 通过javascript中文本框的类名获取所有元素
问题描述
我的 javascript 页面上有一些文本框,其类为 textID。所以如果我要做
function UpdateTotals() {
getText = document.getElementsByClassName('textID').value;
}
所有的值都是数字,那么如何将这个类中的所有值加在一起呢?示例:有 4 个文本框,每个文本框中都有数字 2。我想通过将它们全部加在一起来获得 8 个(但只有该类中的文本框)。
解决方案
一个例子是使用Array.prototype.reduce()
const textID = document.querySelectorAll('.textID');
const total = [...textID].reduce((a, el) => a + (+el.textContent.trim()), 0);
console.log(total); // 8
<div class="textID">2</div>
<div class="textID">2</div>
<div class="textID">2</div>
<div class="textID">2</div>
对于 INPUT 元素:
const textID = document.querySelectorAll('.textID');
const total = [...textID].reduce((a, el) => a + (+el.value), 0);
console.log(total); // 8
<input class="textID" type="number" value="2">
<input class="textID" type="number" value="2">
<input class="textID" type="number" value="2">
<input class="textID" type="number" value="2">
const textID = document.querySelectorAll('.textID');
let total = 0;
textID.forEach(el => total += +el.value);
console.log(total); // 8
<input class="textID" type="number" value="2">
<input class="textID" type="number" value="2">
<input class="textID" type="number" value="2">
<input class="textID" type="number" value="2">
推荐阅读
- r - lm() 和 t.test(var.equal = TRUE) 在一台机器上不同,但在另一台机器上不同。可能的原因?
- java - 为什么我会收到 NumberFormatException?
- flutter - 当用户在LongPress上交回墨水瓶时如何通知?
- vue.js - vue js中的名称验证
- grafana - 使用 Influxdb 在 Grafana 中选择字符串值作为整数
- python-3.x - 有条件地删除python字典中的项目(基于键值)
- c# - 从 wpf 客户端与 spring boot sseemitter 通信的解决方案
- javascript - 我如何在javascript中获取元素高度
- matlab - 自组织地图:如何从图中识别集群?
- facebook-graph-api - Facebook 的 Graph API 帖子不可见?