I'm trying to create a game, and the first step of it is the character selection through html-select. When the user chooses an option, through function (including a "switch"), a previously defined object has his values re-assigned, and I can even echo those inside the function, but, when I try the same outside the function the values don't update properly. Here is the code:
<html>
<head>
<script>
var selectedPlayer = {
level: 0,
gold: 1,
expWorth: 0,
classLevel: 0,
experience: 0,
totalHealth: 0,
totalEnergy: 0,
totalAttack: 0,
totalDefense: 0,
totalSpeed: 0,
totalFatigue: 0
};
function switchingCharacter() {
switch ($("#mySelect option:selected").val()) {
case "heracles":
$("#demo2").text("You selected Heracles");
selectedPlayer = {
level: 2,
gold: 2,
expWorth: 0,
classLevel: 0,
experience: 0,
totalHealth: 35,
totalEnergy: 10,
totalAttack: 51,
totalDefense: 50,
totalSpeed: 2,
totalFatigue: 2
};
break;
case "ra":
$("#demo2").text("You selected Ra");
selectedPlayer = {
level: 1,
gold: 1,
expWorth: 0,
classLevel: 0,
experience: 0,
totalHealth: 180,
totalEnergy: 10,
totalAttack: 13,
totalDefense: 8,
totalSpeed: 2,
totalFatigue: 2
};
break;
default:
$("#demo2").text("You didn't select any character");
}
$("#hp").text("HP: " + selectedPlayer.totalHealth);
$("#attack").text("Attack: " + selectedPlayer.totalAttack);
$("#defense").text("Defense: " + selectedPlayer.totalDefense);
$("#energy").text("Energy: " + selectedPlayer.totalEnergy);
$("#speed").text("Speed: " + selectedPlayer.totalSpeed);
$("#fatigue").text("Fatigue: " + selectedPlayer.totalFatigue);
$("#gold").text("Gold: " + selectedPlayer.gold);
}
function displaystats() {
$("#level").text("Level: " + selectedPlayer.level);
}
//Below is something added in 2nd edition
var testing = selectedPlayer.fatigue;
function other() {
$("#log").text(Math.floor(testing));
}
other();
console.log(testing);
</script>
<script type="text/javascript" src="https://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
<p>Welcome to Anime Colisseum's System Calculator.</p>
<p>Select your character below:</p>
<form>
<select id="mySelect" onchange="switchingCharacter()">
<option value="heracles">Heracles</option>
<option value="ra">Ra</option>
</select>
</form>
<p id="demo" class=form-control></p>
<p id="demo2" class=form-control></p>
</body>
<p id=hp></p>
<p id=energy></p>
<p id=attack></p>
<p id=defense></p>
<p id=speed></p>
<p id=blocks></p>
<p id=fatigue></p>
<p id=gold></p>
<p id=level></p>
<p id=log></p> <!-- 2edition --->
</html>
I expected that the p element with the "id=level" would be changed, just as the others inside switchingCharacter() were...
I fairly new to programming so is highly probable that I am, perhaps, overlooking a simple but crucial detail. Thanks in advance.