IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Une erreur en créant un div dynamiquement dans un petit code.


Sujet :

JavaScript

  1. #1
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2021
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Décembre 2021
    Messages : 81
    Points : 63
    Points
    63
    Par défaut Une erreur en créant un div dynamiquement dans un petit code.
    Salut, j'ai ce petit code pour créer un Div dans un div existant nommé 'corps'.
    L'erreur affiche :
    Uncaught TypeError: Cannot read properties of null (reading 'appendChild')
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var newDiv = document.createElement("div");
    // Ajoute le Div au DOM.
    let place=document.getElementById('corps');
    newDiv.style.position="absolute";
    newDiv.style.backgroundColor="red";
    newDiv.id='mondiv';
    newDiv.style.width=100+"px";
    newDiv.style.height=100+"px";
    console.log(newDiv);
    place.appendChild(newDiv);

    Le console.log affiche :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="mondiv" style="position: absolute; background-color: red; width: 100px; height: 100px;"></div>

    Si j'arrive à créer ce div 'mondiv', je voudrais lui attribuer un evennement onclick()

  2. #2
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut
    Salut ton id est mondiv et tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    let place=document.getElementById('corps');
    . Normal ! Tu remplaces corps par mondiv... ou tu fais Si tu fais référence à un div qui n'est pas appelé avec le bon identifiant, tu as forcément une erreur...

  3. #3
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2021
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Décembre 2021
    Messages : 81
    Points : 63
    Points
    63
    Par défaut
    Salut, Ah je vois ce que tu veux dire, merci de ton aide

    Mais comment je peux faire pour mettre "mondiv" dans le div "corps" ?
    Celui-ci est dans un div qui se nomme "contener", lui-même dans le body.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <body>
    <div id="contener">
         <div id="corps">
             // "mon code" (c'est là où je voudrais mettre "mondiv" en absolu).
         </div>
    </div>
    </body>

    Donc j'ai essayé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.contener.corps.appendChild(newDiv);
    Mais j'ai toujours la même erreur.

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    ton premier code d'insertion est correct mais arrive trop tôt dans ta page, l’élément <div id="corps"> n'existant encore pas lorsque tu cherches à l'utiliser.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <body>
    <div id="contener">
         <div id="corps">
         </div>
    </div>
    <script>
      // ton code est à mettre ici ou doit être appelé sur le load de la page
    </script>
    </body>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <script>
    window.addEventListener("load", function() {
      // ton code ici
    });
    </script>
    dans ce dernier cas le script peut être placé où tu veux, dans la partie <head> par exemple ou dans un fichier séparé

  5. #5
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2021
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Décembre 2021
    Messages : 81
    Points : 63
    Points
    63
    Par défaut
    Ah merci beaucoup, je vais essayer ça

    Mais je dois laisser : place=document.get....

    ou document.contener.corps

    ou autre chose ?

    je veux acceder à "corps" et y mettre le child "mondiv"
    mais je sais pas comment on accede à corps.

    EDIT : J'ai reussi à reconnaitre le div corps, merci beaucoup !!!
    effectivement mon premier code était bon mais il trouvait pas le div corps, et là c'est bon

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Citation Envoyé par Programir
    je veux acceder à "corps" et y mettre le child "mondiv"
    mais je sais pas comment on accede à corps.
    et çà c'est quoi !?!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    let place=document.getElementById('corps');

    Revoit, également, les bases de ces méthodes de manipulation du DOM.

    Les ancestrales :
    • Document.getElementById() ;
    • Document.getElementsByClassName() ;
    • Document.getElementsByName() ;
    • Document.getElementsByTagName().


    Les de plus en plus utilisées, plus souples :
    • Element.querySelector() ;
    • Element.querySelectorAll().

    entres autres ...

  7. #7
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2021
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Décembre 2021
    Messages : 81
    Points : 63
    Points
    63
    Par défaut
    ah oui, merci beaucoup !!!

    mainten,ant ça marche, mais je vais quand même etudier tes liens ça me servira beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Insertion d'une div "dynamique" dans une autre page web
    Par plouffys dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 25/03/2013, 13h14
  2. Réponses: 19
    Dernier message: 17/03/2011, 14h30
  3. erreur incomprehensible dans un petit code
    Par feynman dans le forum Fortran
    Réponses: 1
    Dernier message: 29/12/2009, 23h45
  4. [DataGridView] lenteur incompréhensible dans un petit code
    Par AsPrO dans le forum Windows Forms
    Réponses: 21
    Dernier message: 26/06/2008, 15h03
  5. Erreur de conversion et requête dynamique dans une procédure
    Par franculo_caoulene dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 01/08/2005, 15h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo