gpt4 book ai didi

JavaScript 事件仅循环一次且无输出

转载 作者:行者123 更新时间:2023-11-28 09:15:30 25 4
gpt4 key购买 nike

我正在编写一段 JS 代码来计算给定一些单独成绩的最终成绩,并将结果输出到 html 页面中,但是当我触发事件和函数时,它仅在 for 循环中循环一次,而不会到达代码的其余部分(我使用 print 语句进行了检查)但我不明白循环出了什么问题导致代码的其余部分无法到达。

HTML:

<!DOCTYPE html>
<html>
<head>
<title>Problem 2</title>
<script src="grades.js" type="text/javascript"></script>
</head>

<body>
<h1>Grade Calculator</h1>
<form id ="myForm">
<div id="assignments">
HW <input type="text" size="1"/> / <input type="text" size="1"/><br/>
HW <input type="text" size="1"/> / <input type="text" size="1"/><br/>
HW <input type="text" size="1"/> / <input type="text" size="1"/>
</div>

<div>
<input type="checkbox" id="curve"/> Curve +5?
</div>

<div id="resultsarea">
<p>
<!--add buttons here -->
<button type="button" id="comp">Compute</button>
<button type="button" id="clr">Clear</button>
</p>

<!-- add results here -->
</div>
</form>
</body>
</html>

JS:

window.onload = pageLoad;

function pageLoad()
{
var cbutton = document.getElementById("comp");
cbutton.onclick = compute;
}

function compute()
{
var list = document.getElementsByTagName("input");
var marks = 0;
var total = 0;
for (var i=1; i <= list.length; i++)
{
if(list[i].type == "text")
{
if (i%2 != 0)
marks += list[i].value;
else
total += list[i].value;
}
}
var result = Math.round(marks/total);
if (document.getElementById("curve").checked)
result += 5;
var out = document.createElement("div");
var t = document.createTextNode(result);
out.appendChild(t);
var display = document.getElementById("resultsarea");
display.append(out);
}

最佳答案

数组值从 0 开始。尝试 i=0 且 i<=list.length-1。您没有计算第一个列表元素。

您是从 list[1].type 开始,而不是 list[0].type。

关于JavaScript 事件仅循环一次且无输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15719806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com