0
javascriptの配列とは異なるtrとtdのテーブルを作成する際に問題があります。私はdisplayScores関数で表示するスコアと名前を取得できますが、値はそれぞれ別々のセルにはありません。また、配列にスコアと名前を追加するときに適切な平均を表示するdisplayResults関数を取得するのにいくつか問題があります。右の「最高スコア」が表示されますが、追加されたスコアは平均化されません。私が抱えている問題のいずれかの助けがあれば幸いです。ここでテーブルにjavascript配列を表示し、配列の平均スコアを
は、HTMLです:私はHTMLに触れていなかった
var names = ["Ben", "Joel", "Judy", "Anne"];
var scores = [88, 98, 77, 88];
var $ = function (id) {
return document.getElementById(id);
};
var addScore = function() {
names.push($("name").value);
scores.push($("score").value);
};
var sum = 0;
for(var i = 0; i < scores.length; i++){
sum += parseInt(scores[i], 10);
}
var avg = sum/scores.length;
var Results = function() {
var h2Node = document.createElement("h2");
var h2TextNode = document.createTextNode("Results");
h2Node.appendChild(h2TextNode);
document.body.appendChild(h2Node);
var avgNode = document.createElement("p");
var avgTextNode = document.createTextNode("Average Score = " + avg);
avgNode.appendChild(avgTextNode);
document.body.appendChild(avgNode);
var highestNode = document.createElement("p");
var highestTextNode = document.createTextNode("Highest Score = " + scores[0]);
highestNode.appendChild(highestTextNode);
document.body.appendChild(highestNode);
};
var displayResults = function() {
$("results");
scores.sort(function(a, b){return b-a});
Results();
};
var displayScores = function() {
var table = $("scores_table");
var tBody = table.tBodies[0];
if (tBody == undefined) {
tBody = document.createElement("tBody");
table.appendChild(tBody);
}
for (i = 0; i < scores.length; i++) {
var row = tBody.insertRow(-1);
var textNode = document.createTextNode(names);
var cellNode = row.insertCell(-1);
cellNode.appendChild(textNode);
var scoreNode = document.createTextNode(scores);
var cellNode2 = row.insertCell(-1);
cellNode2.appendChild(scoreNode);
}
};
window.onload = function() {
$("add").onclick = addScore;
$("display_results").onclick = displayResults;
$("display_scores").onclick = displayScores;
};
素敵な強化が新しい表示する前に古い結果やスコアをクリアすること(または少なくとも間にいくつかのスペースをスキップする)可能性がある –
displayScoresのforループの前に.remove()と書いてあると思います。 –
素晴らしいです、ありがとうございます。私はdisplayScores forループのインデックスを使ってみることを誓いましたが、webstormは私にその漠然とした緑のエラーの1つを与えていました。データを実際に表示することはありませんでした。 – TyHink