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 :

[DOM] difficulté avec DOM


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 172
    Points : 60
    Points
    60
    Par défaut [DOM] difficulté avec DOM
    Bonjour tout le monde,

    Lorsque je développe j'utilise le javascript avec les evénements onclick,onblur etc et j'utilise aussi les arboresences javascript a savoir document.getElementById("nomdelidentifiant").value par exemple pour vérifier si l'utilisateur a saisi une valeur dans le champ de saisie.

    1)
    Récement je m'interresse à DOM et ma premiere question est:
    lorsque l'on utilise document.getElementById("nomdelidentifiant").value, est ce que c'est du DOM.


    2)

    J'ai utilisé avec DOM le createElement mais visiblement ca fonctionne pa, il comprend pas les "table","tr","td". Le code m'affiche bonjour mais ne prend pas en compte la bordure.

    voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      document.createElement("<table border='10'>");
      document.createElement("<tr>");
      document.createElement("<td>");
      document.write("bonjour");
      document.createElement("</td>");
      document.createElement("</tr>");
      document.createElement("</table>");

    Merci de votre aide

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    C'est normal que ton texte s'affiche mais pas le tableau.
    Tu créés les éléments mais tu ne les affectes pas dans la page.

    Et puis tu ne peux pas construire ton tableau de cette manière.

    Enfin, tu devrais bannir l'utilisation de document.write de ton vocabulaire.

    Pour avoir ce que tu souhaites c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var table = document.createElement("<table>");
    var tr    = document.createElement("<tr>");
    var td    = document.createElement("<td>");
     
    table.style.border = '10px solid #000';
     
    document.getElementById('idconteneur').appendChild(table);
    table.appendChild(tr);
    tr.appendChild(td);
    td.appendChild(td.createTexteNode("Bonjour"));

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 172
    Points : 60
    Points
    60
    Par défaut
    Je te remercie de ton aide, mais je viens de copier ton code mais visiblement il y a un petit soucis car rien ne s'affiche à l'écran.

    Sinon lorsque l'on utilise DOM est ce que c'est du dynamique HTML.

    Merci de votre aide

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Ouaip, c'était document.createTextNode et pas td.createTextNode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function test(){
       var table = document.createElement("<table>");
       var tr    = document.createElement("<tr>");
       var td    = document.createElement("<td>");
     
       table.style.border = '10px solid #000';
     
       document.getElementById('idconteneur').appendChild(table);
       table.appendChild(tr);
       tr.appendChild(td);
       td.appendChild(document.createTextNode("Bonjour"));
    }
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <a href="javascript:test();">Ajout</a>
    <div id="idconteneur"></div>

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 172
    Points : 60
    Points
    60
    Par défaut
    Je te remercie de ton aide mais ca fonctionne toujours pas.

    Sinon je voulais savoir.
    Cette ligne sert à quoi
    document.getElementById('idconteneur').appendChild(table);

    Merci de ton aide.

  6. #6
    Membre averti Avatar de deY!
    Inscrit en
    Avril 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2006
    Messages : 403
    Points : 414
    Points
    414
    Par défaut
    elle permet d'insérer l'element creer, parcequ'il ne suffit pas simplement de le créer avec createElement, mais il faut aussi l'inserer par la suite.

    Plus précisement, il rajoute un element dans un autre sans effacer ce qu'il y avait deja dedans...

    Js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <script type="text/javascript">
    function test() {
       var table = document.createElement("table");
       table.setAttribute("style", "border:10px solid #000;");
       var tr = document.createElement("tr");
       var td = document.createElement("td");
       var txt = document.createTextNode("bonjour");
     
       td.appendChild(txt);
       tr.appendChild(td);
       table.appendChild(tr);
       document.getElementById('idconteneur').appendChild(table);
    }
    </script>
     
    <a href="javascript:test();">Ajout</a>
    <div id="idconteneur"></div>

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    salut,

    cherche du coté de
    table.insertRow(-1)
    et
    table.insertCell(<monRang>)

    ca marche plutot bien.

Discussions similaires

  1. [DOM] CloneNode avec DOM, XHR ne suit pas
    Par sativa808 dans le forum Général JavaScript
    Réponses: 28
    Dernier message: 12/09/2008, 15h36
  2. [DOM] erreur avec DOM PHP5
    Par opeo dans le forum Bibliothèques et frameworks
    Réponses: 13
    Dernier message: 20/07/2007, 16h59
  3. [DOM] Problème de lecture avec DOM
    Par samios dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 29/09/2004, 15h58
  4. [DOM] Accès au contenu textuel d'un noeud avec DOM
    Par comexe2 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 16/07/2004, 15h41
  5. [DOM] Comment lire de l'HTML avec DOM ?
    Par djodjo dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 20/04/2004, 15h37

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