dans mon HTML j'ai des questions et des solutions. Je veux cacher et montrer des solutions pour chaque question avec différents boutons.Javascript cacher/montrer avec de nombreux éléments
Voici mon problème: J'écris une nouvelle fonction pour chaque bouton de solution. Par exemple, si j'ai 100 questions, j'ai besoin d'écrire 100 différentes fonctions Javascript.
Y a-t-il une meilleure façon de procéder? Puis-je écrire une seule fonction pour chaque bouton de solution.
Merci beaucoup d'avance.
Voici mon html:
<li>Question 1. What is x?</li>
<button class="btn btn-outline-success"
onclick="myFunction()">Solution</button>
<div id="Solution">
<div class="highlight">
<pre>
X is apple
</pre>
<li>Question 2. What is y?</li>
<button class="btn btn-outline-success"
onclick="myFunction1()">Solution</button>
<div id="Solution1">
<div class="highlight">
<pre>
Y is orange
</pre>
Et voici mon Javascript:
document.getElementById('Solution').style.display = 'none';
function myFunction() {
var x = document.getElementById('Solution');
if (x.style.display === 'none') {
x.style.display = 'block';
} else {
x.style.display = 'none';
}
}
document.getElementById('Solution1').style.display = 'none';
function myFunction1() {
var x = document.getElementById('Solution1');
if (x.style.display === 'none') {
x.style.display = 'block';
} else {
x.style.display = 'none';
}
}
Note: J'ai vu beaucoup de questions sur cache spectacle, mais je ne pouvais pas résoudre mon problème. Si c'est une question en double s'il vous plaît me prévenir et je peux supprimer.
Est-ce un exercice dans "vanilla JavaScript" i. e. Voulez-vous explicitement éviter d'utiliser jquery? Si oui, cela * peut * être fait, mais sinon, une solution utilisant jquery est presque triviale. – cars10m
Il n'y a aucune raison de préconiser jQuery ici. Cela n'a absolument aucun rapport avec le problème ou la solution. –
Je suis d'accord, si OP veut * résoudre un casse-tête * alors les réponses sans jquery sont justes. Mais s'il veut réaliser quelque chose dans un contexte de mot réel, alors peut-être que l'allusion à jquery pourrait être utile. Je ne le force à personne. Mais '$ ('. Solution'). Hide() $ ('button'). On ('clic', function() {$ (this) .next(). Show()})' est nettement plus court que toutes les autres solutions ici, voir ci-dessous pour une démo de travail. – cars10m