Exercice 5/8

Dans le fichier script.js :

  • déclarez les variables result et longueur;
  • utilisez document.getElementsByClassName() pour récupérer les éléments HTML qui ont la class "par" et affectez le résultat à result;
  • récupérez dans longueur la longueur du tableau;
  • créez une boucle for avec l'itérateur i;
  • dans la boucle affichez chaque élément avec alert();
  • cliquez sur Soumettre ma réponse.

Leçon 5/8

Si vous avez réussi l'exercice précédent, vous avez donc pu afficher 3 fois ceci :

 [object HTMLParagraphElement]

Grâce à la boucle vous avez donc pu récupérer les trois paragraphes p qui sont stockés chacun dans un objet.

Pour l'instant, vous savez comment récupérer un ou des éléments HTML. Vous verrez dans les exercices suivant comment agir sur ces éléments HTML et donc le DOM.

Il est aussi possible de récupérer les éléments HTML selon la class css qu'ils possèdent avec la fonction suivante :

.getElementsByClassName()

Elle fonctionne de la même manière que la fonction précédente.

Commentaires les mieux notés

  • jimmybb-12

    Erreur(s) : Votre variable result ne contient pas les balises ayant comme classe par un petit console.log dans la boucle me dit le contraire ....

  • tjmasiee-86

    Mon code est-il bon? j'ai ce message :Erreur interne : Veuillez passer à l'exercice suivant, un administrateur corrigera celui là dès que possible, merci.

  • matthieu.sivy-19

    Bonjours voici mon code : var result; var longueur; result=document.getElementsByClassName('par'); longueur=result.length; var i; for(i = 0 ; i < longueur ; i++) { alert(result[i]); }

  • dusapin-kevin-15

    Pourquoi faut-il déclarer les variable result et longueur, puis seulement après leur affecter leurs valeurs ? C'est juste un bug du correcteur ?

40 Commentaires

  • ali_alhashim

    ali_alhashim

    Bon ca fait plusieurs exercices où j'ai le message d'erreur Avez-vous bien déclaré les variables demandées ? !!

    le 21/09/2017 à 22h51

  • mram

    mram Administrateur

    Bonjour, et oui il ne faut pas oublier de déclarer "i" .

    le 22/09/2017 à 18h45

  • mram

    mram Administrateur

    Ligne 5, on souhaite afficher l'élément du tableau "result" en cours d'itération dans la boucle.

    le 16/11/2016 à 19h48

  • doucette.manon

    doucette.manon

    Avez-vous bien affiché chaque élément du tableau avec alert() ? mon code : var result , longueur ; result = document.getElementsByClassName('par'); longueur = result.length; for (i = 1; i < longueur; i++) { alert(result[i]); }

    le 11/09/2018 à 10h26

  • mram

    mram Administrateur

    Dans une boucle, généralement on initialise "i" à zéro.

    le 16/09/2018 à 07h08

  • cdezandee

    cdezandee

    var result = document.getElementsByClassName('par'); var longueur = result.length; for (i=0; i < longueur; i++) { alert(document.getElementsByClassName('par')); }

    le 15/11/2016 à 15h01

  • alexismoquet

    alexismoquet

    Bjr, je n'arrive pas à valider, mon code est-il bon ?

    le 12/10/2017 à 14h27

  • mram

    mram Administrateur

    Bonjour, il doit y avoir des espaces inutiles à la fin de la ligne 4.

    le 12/10/2017 à 16h55

  • ali_alhashim

    ali_alhashim

    En fait c'est bon, j'oubli toujours de déclarer l'itérateur i !

    le 22/09/2017 à 09h18

  • djamchid

    djamchid Administrateur

    Avez-vous bien déclaré les variables demandées ?

    le 22/08/2017 à 12h29

  • philgd28

    philgd28

    bonjour, comme dans l'exercice précédent j'ai le même message d'erreur. Mon code est il bon ? merci

    le 11/08/2017 à 09h06

  • mram

    mram Administrateur

    Bonjour, oui il est correct :)

    le 16/08/2017 à 11h18

  • nkeshimanabrice-37

    nkeshimanabrice-37

    pouvez-vous me corriger...

    le 15/01/2019 à 09h23

  • meriam

    meriam Administrateur

    Bonjour, utilisez document.getElementsByClassName() pour récupérer les éléments HTML qui ont la class "par".

    le 15/01/2019 à 16h21

  • Leob974

    Leob974

    Bonjour, mon code est-il bon ? Car je ne vois pas ou j'aurais pu me tromper

    le 08/08/2018 à 16h26

  • mram

    mram Administrateur

    Bonjour, quel message d'erreur avez-vous exactement ?

    le 13/08/2018 à 04h13

  • mohamed.gdoura.pro-37

    mohamed.gdoura.pro-37

    on est tous bloqué , svp corriger ce bug

    le 07/12/2018 à 20h23

  • meriam

    meriam Administrateur

    Bonjour, votre dernier code est correct, essayez de déclarer result puis en lui setant le contenu, de même pour longueur. Pour la variable doit être déclaré au moment de la création de la boucle.

    le 10/12/2018 à 09h34

  • philgd28

    philgd28

    bonjour, je pense que mon code est bon. Mais sa ne passe pas, pas simple d'avancer... pouvez-vous si je suis dans le vrai. merci

    le 03/11/2017 à 08h12

  • mram

    mram Administrateur

    Bonjour, oui votre code est correct :) Mais il y a des espaces inutiles en fin de ligne du "for" et après l'accolade { et à la fin du alert()

    le 04/11/2017 à 00h22

  • lienmontage

    lienmontage

    Je bloque ici aussi

    le 27/03/2018 à 14h12

  • mram

    mram Administrateur

    Bonjour, idem ici, un espace après "for".

    le 30/03/2018 à 02h08

  • radiere.theo-90

    radiere.theo-90

    bonjour, même problème que l'exercice précédent : où se trouve mon erreur svp ? le correcteur m'indique "unexpected token )...

    le 25/04/2018 à 11h53

  • mram

    mram Administrateur

    Bonjour, vous oubliez de déclarer la variable "i".

    le 29/04/2018 à 03h11

  • belespoir38

    belespoir38

    Bonjour, un commentaire svp ? var result; var longueur; result= document.getElementsByClassName('par'); longueur= result.length; for (i=0; i<longueur; i++) { alert(result[i]); }

    le 14/01/2018 à 14h04

  • mram

    mram Administrateur

    Bonjour, idem ici, n'oubliez pas de déclarer la variable "i", c'est une variable comme une autre.

    le 17/01/2018 à 19h21

  • bernardraphael13

    bernardraphael13

    bonsoir, un peu énervant Avez-vous bien déclaré les variables demandées ? mon code var result , longueur ; result = document.getElementsByClassName('par'); longueur = result.length; for(i = 1; i < longueur; i++) { alert(result[i]); } merci cela me débloquera à plusieurs endroit...

    le 14/06/2017 à 23h31

  • mram

    mram Administrateur

    Bonjour, votre code semble correct en effet.

    le 21/06/2017 à 14h26

  • alexis_masson1-76

    alexis_masson1-76

    Je ne vois pas comment je pourrais améliorer mon code, j'ai des erreurs, surement des soucis au niveau d'espaces ou de 'couilles' dans ce genre ?

    le 16/08/2018 à 10h44

  • mram

    mram Administrateur

    Oui mettez l'accolade ligne 5 sr une ligne à part. C'est que de la syntaxe en effet.

    le 28/08/2018 à 22h09

  • farjallah.refka-37

    farjallah.refka-37

    bonjour, pouvez vous me corriger l'exercice;quand je soumettre sa donneErreur interne : Veuillez passer à l'exercice suivant, un administrateur corrigera celui là dès que possible

    le 15/04/2019 à 19h54

  • meriam

    meriam Administrateur

    Bonjour, tout d'abord, il faut séparer la déclaration des variables result et longueur et l'affectation des resultats. Par exemple var result; result = document.getElementsByClassName("par"); Dans la boucle for affichez chaque élément avec alert() en utilisant result.

    le 16/04/2019 à 12h37

  • pzim-34

    pzim-34

    Je ne trouve pas mon erreur ! Voici mon code : result = document.getElementsByClassName('par'); longueur = result.length; for (i = 0; i < longueur; i++) { alert(result[i]); }

    le 23/03/2019 à 16h02

  • meriam

    meriam Administrateur

    déclarez la variable i au moment de la création de la boucle.

    le 27/03/2019 à 11h39

  • Elyann

    Elyann

    Bon j'ai réussi, j'ai reécrit la même chose après l'avoir effacer, et du coups sa fonction... chelouuuu^^

    le 09/01/2019 à 19h43

  • CC.013

    CC.013

    en faite j ai fait la même erreur partout .... merci Meriam

    le 29/03/2019 à 16h28

index.html
script.js
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>DOM</title> </head> <body> <h1>Titre h1</h1> <p class="par">Paragraphe 1</p> <h2>Titre h2</h2> <p class="par">Paragraphe 2</p> <ul> <li>Item 1</li> <li>Item 2</li> <li><a href="http://www.google.fr">Item 3</a></li> </ul> <div id="bloc"> <h3>Titre h3</h3> <p class="par">Paragraphe 4</p> </div> <script src="script.js"></script> </body> </html>