J'essaie de créer un argument if ... else if ... else où la seule variable est le numéro actuel du niveau d'accès. Cela déterminera le contenu à afficher pour l'utilisateur, de sorte que quelqu'un avec le niveau 1 verra une chose tandis que quelqu'un avec le niveau 0 en verra une autre.Modifier l'ID de l'élément avec Javascript, si ... else if ... else
Par défaut tout est caché, mais une fois que quelqu'un va sur la page web, le Javascript est supposé changer l'ID de l'élément pour afficher le contenu approprié. Je ne suis pas sûr de ce que je fais mal, mais ça ne change pas l'ID comme il se doit. Si je vais à ce sujet dans le mauvais sens s'il vous plaît laissez-moi savoir quelles autres alternatives il peut y avoir.
<html>
<body>
<style type="text/css">
#AccessLevel1Hide {display: none; }
#AccessLevel1Show {display: block; }
#AccessLevel0Hide {display: none; }
#AccessLevel0Show {display: block; }
</style>
<script type="text/javascript">
var AccessLevel = (1);
if (AccessLevel == 1){
document.getElementById('AccessLevel1Hide').id="AccessLevel1Show";
}else if (AccessLevel == 0){
document.getElementById('AccessLevel0Hide').id="AccessLevel0Show";
}else {document.write("ERROR");
}
</script>
<div id="AccessLevel1Hide">
Access Level 1 message.
</div>
<div id="AccessLevel0Hide">
Access Level 0 message.
</div>
</body>
</html>
Merci beaucoup, est beaucoup plus logique que la façon dont je tentais de le faire! Je voudrais noter qu'en ajoutant la classe "hide" cela ne fonctionnait pas, ce que j'ai fait était de supprimer complètement la classe hide et d'utiliser à la place # AccessLevel1 {display: none; } pour le cacher. J'ai ensuite utilisé # AccessLevel1 .show {display: block; } pour l'afficher. Il y a d'autres systèmes en place pour sécuriser la page; ce code est juste utilisé pour afficher les liens auxquels ils ne pourront pas accéder s'ils n'ont pas le niveau de toute façon. Merci d'avoir soulevé si! –
EDIT: Je pensais que cela fonctionnait, mais après un peu plus de tests, j'ai trouvé que ce n'était pas le cas. Lorsque je modifie le AccessLevel à 2, il affiche ERROR comme il se doit. Lorsque je le change en 1 ou 0, il n'affiche rien. L'option .document.write fonctionne parfaitement, mais pour une raison quelconque, les autres arguments que j'essaie d'utiliser (comme ci-dessus) ne fonctionnent pas avec if ... else if ... else. Y a-t-il un pas secret qui me manque? –
Edvard: Je devrais voir le code - modifier mon jsfiddle et je peux le regarder. – Hogan