Code javascript non fonctionnelle

Fermé
Diego987 Messages postés 64 Date d'inscription vendredi 28 décembre 2018 Statut Membre Dernière intervention 9 janvier 2024 - Modifié le 25 juil. 2020 à 10:26
 LeVieuxCampeur - 25 juil. 2020 à 11:06
Bonjour,
j'essaye un petit code du cours de CS50 de Harvard et j'ai un erreur dans la borne <script>... du code javascript. Je crois que c'est ce truc qui ne marche pas : ('#$(page)'). Que faire? Ca ne marche pas quand je tape la commande showPage("page1"); dans la console js de chrome
voici le code :

<!DOCTYPE html>
<html>
    <head>
        <title>Singje Page</title>
        <style>
            div {
                display: none;
            }
        </style>
        <script>
            function showPage(page) {
                document.querySelector('#$(page)').style.display = 'block';
            }

        </script>
    </head>
    <body>
        <button data-page="page1">Page1</button>
        <button data-page="page2">Page2</button>
        <button data-page="page3">page3</button>
        <div id="page1">
            <h1>This is page1.</h1>
        </div>
        <div id="page2">
            <h1>This is page2.</h1>
        </div>
        <div id="page3">
            <h1>This is page3.</h1>
        </div>
    </body>
</html>

Merci d'avance de vos réponses

EDIT : Déplacement de la question dans le forum JAVASCRIPT
EDIT² : Correction des balises de code



Configuration: Macintosh / Chrome 84.0.4147.89
A voir également:

2 réponses

jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
Modifié le 25 juil. 2020 à 10:34
Bonjour,

Il aurait été interessant que tu nous mettes le lien vers cette formation.

Mais il me semble déjà, que le selector utilisé est faut.

A la place de
 document.querySelector('#$(page)').style.display = 'block';


essaye
 document.querySelector('#'+page).style.display = 'block';

en passant en paramètre de ta fonction, l'id de la page ciblée
par exemple
showPage('page1');


0
Bonjour

Je pense que la syntaxe n'est pas très correcte...

Je propose une solution alternative :
pour le <script>
<script>
function showPage(page) {
                document.getElementbyId(page).style.display = 'block';
            }
</script>

et pour ton <body>
    <body>
        <button onclick=("showPage('page1');")>Page1</button>
        <button onclick=("showPage('page1');")>Page2</button>
        <button onclick=("showPage('page1');")>page3</button>
        <div id="page1">
            <h1>This is page1.</h1>
        </div>
        <div id="page2">
            <h1>This is page2.</h1>
        </div>
        <div id="page3">
            <h1>This is page3.</h1>
        </div>
    </body>
0