gpt4 book ai didi

javascript document.getElementById 循环

转载 作者:行者123 更新时间:2023-12-03 04:33:48 24 4
gpt4 key购买 nike

我试图打印出我创建的数组中的成绩。我可以让我的 for 循环遍历数组中的所有成绩,但它只打印出最后一个成绩。我将其设置为每次 for 循环完成一个循环时打印成绩,但正如我所说,它只打印最后一个成绩。我还尝试使用 .innerHTML 但这也不起作用,正如您在代码中看到的那样:

var arrayTest = [78, 65, 41, 99, 100, 81];
var arrayLength = arrayTest.length;
var midtermTest = 60;
var msg = "";
var grade;

arrayOfGrades();
addBonus();

function tellGrade() {
if (grade > 100) {
msg = "Grade is higher than 100!, " + grade;
}
else if (grade >= 90) {
msg = "You got an A " + grade + "!!, ";
}
else if (grade >= 80) {
msg = "You got a B " + grade + "!!, ";
}
else if (grade >= 70) {
msg = "You got a C " + grade + "!!, ";
}
else if (grade >= 60) {
msg = "You got a D " + grade + "!!, ";
}
else if (grade <= 59) {
msg = "You got a F " + grade + "!! :(, ";
}
else if (grade < 0) {
msg = "Grade is less than 0, " + grade;
}
}

function arrayOfGrades() {
for (var i = 0; i < arrayLength; i++) {
grade = arrayTest[i];
tellGrade(grade);
writeGrade();
}
}
function addBonus()
{
midtermTest = midtermTest + (midtermTest * .05);
grade = midtermTest;
tellGrade(grade);
writeMidtermGrade();
}

function writeGrade() {
//document.getElementById("test").innerHTML = "Test grade letter: " + msg.toString() + "<br />";
var el = document.getElementById('test');
el.textContent = "Test grade letter: " + msg.toString();
}


function writeMidtermGrade() {
var el = document.getElementById('midterm');
el.textContent = "Midterm test grade letter: " + msg.toString();
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>DecisionsAndLoopsAssignment1_Byrd</title>
<link href="css/default.css" rel="stylesheet" />
</head>
<body>
<div id="test">Missing grade!!</div>
<div id="midterm">Missing grade!!</div>
<script src="js/main.js"></script>
</body>
</html>

最佳答案

函数 writeGrade() 会覆盖其输出到的元素中可能已经存在的任何内容。因此,当多次调用时,仅保留最后一个值。使用 .innerHTML 会做同样的事情。将内容字符串累积到单个变量,然后进行一次调用来输出它们是解决此问题的一种选择。

我还注意到,您在全局变量中传递临时值,这通常被认为是不好的形式。

关于javascript document.getElementById 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43381067/

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