I will try to just post the important parts of my program. If more code is needed, let me know.
main.html
<html>
<head>
<title>Mathematician</title>
<meta charset=UTF8 />
</head>
<body>
<span id=player_information>
</span>
<hr />
<span id=exercises>
</span>
</body>
<script src="script.js"></script>
</html>
script.js (compressed version)
class Exercises
{
constructor(player, number_of_exercises)
{
this.player = player;
this.exercises = [];
for (var i = 0; i < number_of_exercises; i++)
{
var exercise = new Exercise();
var exercise_display = document.createTextNode(exercise);
var input_field = document.createElement("input");
var list_element = [exercise, exercise_display, input_field];
this.exercises.push(list_element);
}
}
display()
{
var exercises_area = document.getElementById("exercises");
for (var i = 0; i < this.exercises.length; i++)
{
exercises_area.append(this.exercises[i][1]);
exercises_area.append(this.exercises[i][2]);
exercises_area.append(document.createElement("br"));
}
var check_button = document.createElement("button");
check_button.innerHTML = "Check";
check_button.onclick = this.check_exercises;
exercises_area.append(check_button);
}
check_exercises()
{
for (var i = 0; i < this.exercises.length; i++)
{
if (this.exercises[i][0].check_guess(this.exercises[i][2].value)) {
alert("That was wright!");
}
}
}
}
...
var player = new Player();
player.display();
var exercises = new Exercises(player, 10);
exercises.display();
This program generates exercises and displays them with a text and an input field where you can enter the solution. If I click on the check button, I get the following error message:
TypeError: this.exercises is undefined
What was my mystake? I tried to figure it out, but this error message doesnt makes sense to me.