J'ai une sélection avec quelques options et je veux changer le contenu d'un div en utilisant innerHTML.replace chaque changement dans la sélection en utilisant JS seulement, Mon problème est que le contenu change seulement une fois par rafraîchissement et ensuite il ne fonctionne plus jusqu'à ce que je ne rafraîchisse pas la page.
(J'utilise FF, j'ai essayé avec Chrome aussi) .
Merci d'avance !
CODE HTML :
function func() {
let mystudents = [{
Name: "AAA",
Year: 2,
Age: 25,
Exceptional: true
},
{
Name: "BBB",
Year: 2,
Age: 25,
Exceptional: false
},
{
Name: "CCC",
Year: 2,
Age: 27,
Exceptional: false
},
{
Name: "DDD",
Year: 2,
Age: 26,
Exceptional: true
}
];
let template1 = document.getElementById('first-item-template');
let selected = mystudents[document.getElementById('student-list').value];
template1.innerHTML = template1.innerHTML.replace('[Name]', selected.Name)
.replace('[Year]', selected.Year)
.replace('[Age]', selected.Age)
.replace('[Exceptional]', selected.Exceptional);
}
<form>
<label for="student-list">Choose a class:</label>
<select name="student-list" id="student-list" oninput="func();">
<option value="0"> Class1 </option>
<option value="1"> Class2 </option>
<option value="2"> Class3 </option>
<option value="3"> Class4 </option>
</select>
<br><br>
</form>
<div id="first-item-template">
<li>
<span>[Name]</span><br>
<label>Year: </label><span>[Year]</span><br>
<label>Age: </label><span>[Age]</span><br>
<label>Exceptional: </label><span>[Exceptional]</span><br>
</li>
</div>