【发布时间】:2021-08-25 23:31:18
【问题描述】:
我最初的问题得到了回答,但我意识到,每次我尝试将用户数据推送到数组中时,它都不允许我做任何其他事情来将数据附加到数组,或者推送方法是唯一的方法。还是我应该创建一个新数组.......................... .....................
"use strict"
const names = ["Ben", "Joel", "Judy", "Anne"];
const scores = [88, 98, 77, 88];
const $ = selector => document.querySelector(selector);
const addScore = () => {
// get user entries
const name = $("#name").value;
const score = parseInt($("#score").value);
let isValid = true;
// check entries for validity
if (name == "") {
$("#name").nextElementSibling.textContent = "This field is required.";
isValid = false;
} else {
$("#name").nextElementSibling.textContent = "";
}
if (isNaN(score) || score < 0 || score > 100) {
$("#score").nextElementSibling.textContent = "You must enter a valid score.";
isValid = false;
} else {
$("#score").nextElementSibling.textContent = "";
}
if (isValid) {
names.push("#name");
scores.push("#score");
names[names.length] = name;
scores[scores.length] = score;
$("#name").value = "";
$("#score").value = "";
}
$("#name").focus();
};
// display scores
const displayScores = () => {
for (let i = 0; i < names.length; i++) {
document.getElementById("scores_display").textContent += names[i] + " = " +
scores[i] +
"\n";
}
};
document.addEventListener("DOMContentLoaded", () => {
$("#add").addEventListener("click", addScore);
$("#display_scores").addEventListener("click", displayScores())
$("#name").focus();
});
<main>
<h1>Use a Test Score array</h1>
<div>
<label for="name">Name:</label>
<input type="text" id="name">
<span></span>
</div>
<div>
<label for="score">Score:</label>
<input type="text" id="score">
<span></span>
</div>
<div>
<label> </label>
<input type="button" id="add" value="Add to Array">
<input type="button" id="display_scores" value="Display Scores">
</div>
<div>
<textarea id="scores_display"></textarea>
</div>
</main>
【问题讨论】:
-
解释“它不允许我”更具体的细节,包括抛出的错误(如果有的话)
-
我没有收到任何错误,但是每次我尝试使用 push 方法将用户数据添加到数组时都没有任何反应。这是我第一次使用 jquery,我认为这是我的语法,但这似乎不是问题,但我相信推送方法的位置我试图将这些方法放在单独的 if 语句中,但没有任何反应
标签: javascript jquery arrays push