@Seds994 :
... mais ça ne prend pas en compte le premier id, qui est afficher tout ça ne revient pas à 0.
je t'avais prévenu qu'il te restait cela à traiter
Pour remettre à l'état initial, tous les éléments doivent être visibles donc, il suffit, en l’absence de valeur passée remettre à tous les éléments le display;block, cela peut se faire également dans la boucle.
Petite question : on peut faire ça avec des class aussi, ou
var oElems = document.querySelectorAll('[id^="selected_"'); ne fonctionne qu'avec des id??
pas sûr de comprendre le but de ta question.
Pour connaitre l'élément à afficher peu importe la sélection par ID ou par class, il suffit simplement de pouvoir faire la correspondance avec l"élément visé.
je dis ça j'ai essayé
var oElems = document.querySelectorAll('[class^="selected_"'); et rien n'y fait.
Il eut été intéressant que tu nous montres comment tu t'y es pris et quelle code HTML tu utilises pour cela.
Envoyé par
PiXxz
... j'aimerai bien que @NoSmoking tu puisse m'expliquer un peu le code que tu as proposé!
Attention ce qui suit s'applique au code HTML que j'ai fourni !
Il est important que la première <option> est une value vide
<option value="" selected>Afficher tout</option>
Je remet le code qui prend en compte le ré-affichage de tous éléments en le commentant
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| function affiche(id_element) {
// récupération des éléments concernés
var oElems = document.querySelectorAll('[id^="selected_"');
var i;
var nb = oElems.length;
for (i = 0; i < nb; i += 1) {
// si une valeur a été passée en paramètre
if (id_element) {
// si l'ID correspond à l'ID de l"élément
if (id_element === oElems[i].id) {
// on affiche l'élément en mettant son display à "block"
oElems[i].style.display = 'block';
}
// dans le cas contraire on cache l'élément en mettant son display à "none"
else {
oElems[i].style.display = 'none';
}
}
// sinon pas de valeur passée en paramètre
else {
// on affiche l'élément en mettant son display à "block"
oElems[i].style.display = 'block';
}
}
} |
Le code pourrait être simplifié, voire tout autre en lisant chaque <option> par exemple, mais le principe est là.
Partager