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 confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2021
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Décembre 2021
    Messages : 81
    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 Expert
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    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 confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2021
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Décembre 2021
    Messages : 81
    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
    17 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    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 confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2021
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Décembre 2021
    Messages : 81
    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
    17 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    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 confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2021
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Décembre 2021
    Messages : 81
    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