javascript - 无法循环输入并添加它们
问题描述
通过添加按钮在页面上peoplePaid()
使用类循环遍历所有输入时遇到问题。.persons
我相信这个问题是#paidTotal
试图从数组中添加内容.persons
但无法访问它们(在控制台中给我一个未定义的错误)。
此变量有效,但仅当有一个.persons
带有变量的类时...
var personsCheck = parseFloat(document.getElementsByClassName('persons')[0].value);
.persons
但是我需要它来动态循环通过元素创建的数组的值。我错过了什么?
function peoplePaid() {
var checkTotal = parseFloat(document.getElementById('check').value);
var personsCheck = document.getElementsByClassName('persons');
var paidTotal = document.getElementById('paidTotal');
for (var i = 1; i < personsCheck.length; i += 1) {
paidTotal += personsCheck[i];
}
paidTotal.innerHTML = checkTotal - personsCheck;
}
$ <input type="text" id="check" value="" />
<h3>Number of People: <span id="numberOfPeople"></span></h3>
<div>
<div id="userNumbers">
<input type="text" class="persons" name="person">
</div>
</div>
<button onclick="peoplePaid()">Calculate</button>
<!--Paid Amount-->
<div>
<h3>Paid Amount: <span id="paidTotal"></span></h3>
</div>
解决方案
paidTotal
是一个元素。我相信你不想+=
在元素本身上使用。您应该将总计添加到变量中。
此外,由于集合的索引是基于 0 的,因此您必须i
从 from的值开始0
。您必须value
从每个元素中获取属性。
请注意:最好在处理纯文本内容时使用textContent
,而不是。innerHTML
试试下面的方法:
function peoplePaid() {
var checkTotal = parseFloat(document.getElementById('check').value);
var personsCheck = document.getElementsByClassName('persons');
var paidTotal = document.getElementById('paidTotal');
var pCheck = 0;
for (var i = 0; i < personsCheck.length; i += 1) {
pCheck += personsCheck[i].value;
}
paidTotal.textContent = checkTotal - pCheck;
}
$ <input type="text" id="check" value="" />
<h3>Number of People: <span id="numberOfPeople"></span></h3>
<div>
<div id="userNumbers">
<input type="text" class="persons" name="person">
</div>
</div>
<button onclick="peoplePaid()">Calculate</button>
<!--Paid Amount-->
<div>
<h3>Paid Amount: <span id="paidTotal"></span></h3>
</div>
推荐阅读
- azure - ARM嵌套模板'无效模板找不到模板资源'
- ada - 您如何在 Ada 中存储(访问)整数运算符?
- apache-kafka - Alpakka Kafka:模式注册表的序列化异常中断了流
- angular - 尝试在 azure vm 中部署 Angular 应用程序时出错:
- cookies - 如何允许 Azure CDN(标准 Microsoft)允许“ASP.NET_SessionId”的“set-cookie”?
- css - 这不止一堂课吗?
- laravel-5 - 如何在 axios 请求中使用 Maatwebsite\Excel 下载 csv 文件?
- docker - dockerized redis cli中的“some-network”占位符中有什么?
- game-maker-studio-1.4 - Game maker Studio pro 64 位架构,满足 android 要求
- css - 如何修复:我只使用 css 创建了一个“X”,但在 ie11 中它在单击时移动