Exercice 3/8

Dans le fichier script.js :

  • déclarez la variable result;
  • utilisez document.getElementsByTagName() pour récupérer le titre h1;
  • affectez à result la longueur de la collection obtenue (.length);
  • cliquez sur Soumettre ma réponse.

Leçon 3/8

Avec getElementsByTagName(h1) vous avez en fait récupéré une collection des éléments HTML présents dans le DOM.

Une collection est en fait une liste des éléments HTML stockés sous forme de tableau.

Dans cet exercice, vous allez récupérer en plus la longueur de la collection (ou du tableau c'est pareil).

Commentaires les mieux notés

  • guillaume.b81-47

    @meriambensalha-29 J'ai bien séparé ma déclaration de variable et l'affectation de son résultat mais ça ne passe toujours pas. Pourriez vous me valider l'exercice?

  • oj.professionnel-33

    une erreur dans mon code ? ou tjr des bugs ? ca parait simple , je l'ai tourne ds tout les sens quitte a inventer des choses des fois lol...var element = document.getElementsByTagName(h1); var result= element.length;

  • alain.taufour

    Bonjour, Erreur h1 pas défini ?

  • alain.taufour

    J'ai vu l'erreur : 'h1' entre guillemets.

33 Commentaires

  • alain.taufour

    alain.taufour

    Bonjour, Erreur h1 pas défini ?

    le 07/04/2017 à 10h17

  • alain.taufour

    alain.taufour

    J'ai vu l'erreur : 'h1' entre guillemets.

    le 07/04/2017 à 10h35

  • ch.r

    ch.r

    Je réussis l'exercice, mais il n'est pas comptabilisé dans mon profil. Mon code n'a pas été sauvegardé.

    le 13/10/2016 à 23h45

  • mram

    mram Administrateur

    La ligne 1 est juste. Ensuite il faut juste une ligne pour redéfinir à "result" sa longueur avec .length.

    le 02/11/2016 à 21h03

  • mram

    mram Administrateur

    Vous étiez bien connecté quand vous avez fait l'exercice ??

    le 17/10/2016 à 00h25

  • markitobcn

    markitobcn

    je pensais que c'était bon mais non… j'ai ce message :"type error: result.length is not a function"

    le 01/11/2016 à 13h17

  • willy.julan

    willy.julan

    bonjour, message d'erreur: Avez-vous utilisé getElementsByTagName() avec h1 ? je teste en local sur mon pc et cela fonctionne !

    le 28/07/2016 à 11h51

  • mram

    mram Administrateur

    Oui, c'est parce que dans le cadre de l'exercice il faut le faire en 2 fois : d'abord on récupère le h1 avec getElementsByTagName() (sans length) , puis on récupère la longueur de la collection obtenue. Votre code est bon, mais ici on demande de faire étape par étape pour bien distinguer ce que fait chaque fonction ( getElementsByTagName() et length() ).

    le 31/07/2016 à 23h27

  • titi-fernandes

    titi-fernandes

    bonjour je ne vois pas où est mon erreur!! ça me met toujours result ne contient pas la valeur attendue avez vous bien utilisé .length?? je ne vois pas comment corriger ça!!

    le 21/09/2017 à 20h11

  • mram

    mram Administrateur

    Bonjour, il faut toujours utiliser .getElementsByTagName() avec document devant. Donc votre ligne 2 est fausse. Attribuez votre ligne 1 à une variable que vous créez (vous donnez le nom que vous voulez)

    le 22/09/2017 à 18h41

  • mram

    mram Administrateur

    Puis ligne 2, remplacez "getElementsByTagName("h1")" par le nom de votre variable créée ligne 1.

    le 22/09/2017 à 18h42

  • philgd28

    philgd28

    Bonjour, un coup de main svp, j'ai beau retourner le code dans tout les sens, j'ai souvent des messages d'erreur alors que sa passe en local, sa devient frustrant . Est ce que je suis sur la bonne voie svp ? voila mes réflexions...

    le 10/08/2017 à 12h23

  • mram

    mram Administrateur

    Bonjour, en effet vous avez essayé pas mal de choses. Et un de vos essais est juste. Simplement pour tous les exercices sur le DOM on a des soucis en ce moment avec la correction automatique. Par rapport à votre dernier essai il faudrait ligne 2 utiliser une autre variable que "result". Et ligne 3 remplacer 'h1' par votre nouvelle variable.

    le 16/08/2017 à 10h37

  • tomasinilaura1988

    tomasinilaura1988

    J'ai testé ça et marche de mon côté mais pas quand j'essaie de soumettre : var result = document.getElementsByTagName('h1'); var nbr = result.length;

    le 13/11/2017 à 19h42

  • mram

    mram Administrateur

    Bonjour, il faut changer le nom de vos variables. A la dernière ligne, c'est "result" qui doit récupérer la longueur qui est calculée.

    le 16/11/2017 à 17h45

  • daviwys

    daviwys

    Bonjour, je ne comprends pas cette partie : "la longueur de la collection obtenue". Quelle collection ? Et la longueur récupéré correspond à quoi ? En faisant un test en locale, sa me retourne "0". Zéro quoi au juste ?

    le 23/09/2017 à 22h56

  • mram

    mram Administrateur

    Bonjour, on appelle souvent "collection" un tableau Javascript qui contient tous les éléments du DOM qui ont été récupérés avec getElementsByTagName

    le 25/09/2017 à 17h39

  • mram

    mram Administrateur

    Vous avez fait les exercices sur les tableaux Javascript ?

    le 25/09/2017 à 17h39

  • extan

    extan

    Bonjour! à quel niveau se situe mon erreur? ""result" ne contient pas la valeur attendue. Avez-vous utilisé .length ?" quelque chose m'échappe je pense :(

    le 27/07/2017 à 20h32

  • mram

    mram Administrateur

    Bonjour, votre code est correct. D'après les récents retours utilisateurs, il semblerait que les exercices sur le DOM bug même si le code est correct. Nous allons voir d'où cela vient...

    le 01/08/2017 à 13h42

  • nkeshimanabrice-37

    nkeshimanabrice-37

    veuillez corriger ...

    le 17/01/2019 à 14h06

  • meriam

    meriam Administrateur

    bonjour, la ligne 3 est inutile, tu peux faire une seule instruction result = document.getElementsByTagName('h1').length;

    le 18/01/2019 à 09h44

  • daviwys

    daviwys

    J'ai fais depuis le début. Et ça parlai des tableaux associatifs et des tableaux ordonnées.

    le 25/09/2017 à 21h17

  • mram

    mram Administrateur

    Ok, et bien ici c'est le même principe : une collection est juste un tableau qui contient des éléments du DOM.

    le 29/09/2017 à 01h22

  • hedi_dc

    hedi_dc

    var result = document.getElementsByTagName('h1'); result.length(); bonjour, où est mon erreur? merci

    le 26/09/2017 à 13h22

  • mram

    mram Administrateur

    Bonjour, c'est la dernière ligne qui est fausse, il faudrait faire "result = result.length" . et revoyez comment on utilise .length également car length() n'existe pas. Ce n'est pas une fonction c'est une propriété.

    le 29/09/2017 à 02h02

  • bretel.val

    bretel.val

    Je suppose que je ne dois pas avoir bien compris le dernier point de l'exercice ...

    le 15/06/2017 à 18h06

  • mram

    mram Administrateur

    Ligne2 pourquoi utiliser "h1", ce n'est pas une variable valide. Il faut appliquer .length à result

    le 21/06/2017 à 16h07

  • philgd28

    philgd28

    Merci je pense donc que c'est mon 2ié code qui est bon. Oufff

    le 17/08/2017 à 17h41

  • eva-85

    eva-85

    Bonjour Mram, je ne vois pas où est l'erreur dans mon code, le message dit que getElementsByTagName is not a function , je ne comprends pas pourquoi : var titre = document.getElementSByTagName('h1'); var result = titre.length;

    le 20/03/2018 à 09h31

  • mram

    mram Administrateur

    Bonjour, il y avait un S majuscule dans le nom de la fonction, du coup elle n'est pas reconnue.

    le 24/03/2018 à 05h14

  • eva-85

    eva-85

    c'est bon j'ai trouvé ! j'avais ajouté un S majuscule a ElementS

    le 20/03/2018 à 11h54

  • mram

    mram Administrateur

    Oui c'était ça :)

    le 24/03/2018 à 05h25

  • bretel.val

    bretel.val

    Bonjour, j'ai envoyé une réponse le 15 mais on ne m'a toujours pas répondu

    le 21/06/2017 à 13h59

  • armand1807

    armand1807

    je sais pas comment il faut faire... j'ai du creer une autre variable pour pouvoir appliquer result.length mais des fois jsuis completment à coté de la plaque... la formule document.getElementsByTagName il faut absolument qu'elle sois affecter a une variable pour récupérer h1 ???

    le 18/08/2017 à 11h18

  • mram

    mram Administrateur

    document.getElementsByTagName() récupère tous les éléments HTML qui correspondent au critère dans les parenthèses, si on veut stocker ce qui est récupérer on l'affecte à une variable oui.

    le 22/08/2017 à 12h46

  • djebbaramohand

    djebbaramohand

    var result; var result = document.getElementsByTagName('h1'); var result = result.length;

    le 21/03/2018 à 14h16

  • mram

    mram Administrateur

    Bonjour, vous utilisiez une variable h1 qui n'existe pas, il faut mesurer la longueur de la variable result.

    le 24/03/2018 à 05h40

  • nkeshimanabrice-37

    nkeshimanabrice-37

    merci meriam...

    le 28/03/2019 à 08h23

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>