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 :

Question sur le DOM.


Sujet :

JavaScript

  1. #1
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 623
    Points : 1 370
    Points
    1 370
    Par défaut Question sur le DOM.
    Bonjour à tous,

    je suis actuellement entrain de lire "Bien développer pour le Web 2.0" est même si je pense avoir compris le principe du DOM, il y a des chose que je ne saisie pas.

    Voilà un extrait du livre, je vous indique ce que j'ai compris et pas compris en espérant un petit coup de main.

    Un petit bout de code simple :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <h1 id="header">Personnes inscrites</h1>
    <ul id="people">
        <li id="al">Alexis</li>
        <li id="nioute">Anne-Julie</li>
        <li id="elodie">Élodie</li>
        <li id="mimi">Marie-Hélène</li>
        <li id="xavier">Xavier</li>
    </ul>

    Les questions/réponses correspondantes :

    header.nextSibling.nodeType == Node.TEXT_NODE // Surprise !
    (Ok entre les noeuds H1 et UL il y a un #text)

    header.nextSibling.nextSibling == people
    (Ok, logique aprés le point 1)

    nioute.lastChild == nioute.firstChild
    (Ok)

    elodie.nextSibling == mimi
    (Pas Ok, il y a pas de #text entre les 2 li (point 1 et 2)?)

    people.previousSibling == header
    (Pas Ok, ben voir point 2)

    header.childNodes.length == 1
    (Ok)

    header.firstChild.nodeType == Node.TEXT_NODE
    (Ok)

    // Ci-dessous : 6 noeuds texte entrelacés à 5 éléments
    people.childNodes.length == 11
    (Pas Ok)

    people.firstChild.nodeType == ’#text’// Surprise !
    (Pas sure, il y a un #text entre UL et li mais pas entre LI et UL?)
    et si on fait ça

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <ul>
        du texte
        <li>premier</li>
        <li>deuxieme</li>
        du texte
    </ul>

    people.firstChild.nodeValue == ’ ’// En mode HTML en tout cas
    (Ok)

    elodie.firstChild.nodeName == ’#text’
    (Ok)

    xavier.lastChild.nodeValue == ’Xavier’
    (Ok)

    xavier.parentNode.firstChild.nextSibling == al
    (Ok)

    // Ci-dessous, valide en mode HTML. En mode XML, serait ’h1’
    nioute.parentNode.previousSibling.nodeName == ’H1’
    (Ok, mais pas cohérent par rapport aux points 5)


    Merci par avance pour votre aide.

  2. #2
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    Citation Envoyé par Farid63 Voir le message
    Bonjour à tous,

    je suis actuellement entrain de lire "Bien développer pour le Web 2.0" est même si je pense avoir compris le principe du DOM, il y a des chose que je ne saisie pas.

    Voilà un extrait du livre, je vous indique ce que j'ai compris et pas compris en espérant un petit coup de main.

    Un petit bout de code simple :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <h1 id="header">Personnes inscrites</h1>
    <ul id="people">
        <li id="al">Alexis</li>
        <li id="nioute">Anne-Julie</li>
        <li id="elodie">Élodie</li>
        <li id="mimi">Marie-Hélène</li>
        <li id="xavier">Xavier</li>
    </ul>

    Les questions/réponses correspondantes :...

    Merci par avance pour votre aide.
    Bonjour il y a effectivement des incohérence dans ce que tu site. (comme tu as mis les quesqtion dans des [ quote ] elle disparaissent lorsqu'on te réponds
    voici comme est instancier ton code dans le DOM (écriture pseudo 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
    {element:h1 id:"header" content:{textnode content:"Personnes inscrites"}}
    {textnode content:"\n"}
    {element:ul id:"people" content:{
      {textnode content:"\n    "}
      {element:li id:"al" content:{textnode content:"Alexis"}}
      {textnode content:"\n    "}
      {element:li id:"nioute" content:{textnode content:"Anne-Julie"}}
      {textnode content:"\n    "}
      {element:li id:"elodie" content:{textnode content:"Élodie"}}
      {textnode content:"\n    "}
      {element:li id:"mimi" content:{textnode content:"Marie-Hélène"}}
      {textnode content:"\n    "}
      {element:li id:"xavier" content:{textnode content:"Xavier"}}
      {textnode content:"\n"}
    }
    {textnode content:"\n "}
    ul a donc bien 11 fils 6 textnodes et 5 éléments li
    avec webkit dans une suite de Ul li comme celle-ci voici ce que j'obtiens (tiré de la naviagtion de la page actuelle)
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
        <ul id="quicklinks">        
            <li class="first">
                <a href="http://www.developpez.net/forums/" title="">Forums</a>
            </li>
            <li>
                <a href="http://general.developpez.com/cours/" title="">Tutoriels</a>
            </li>
            <li>
                <a href="http://magazine.developpez.com/" title="">Magazine</a>
            </li>
            <li>
                <a href="http://general.developpez.com/faq/" title="">FAQs</a>
            </li>
            <li>
                <a href="http://blog.developpez.com/" title="">Blogs</a>
            </li>
            <li>
                <a href="http://projets.developpez.com/" title="">Projets</a>
            </li>
            <li>
                <a href="http://chat.developpez.com/" title="">Chat</a>
            </li>
            <li>
                <a href="http://www.developpez.com/newsletter/">Newsletter</a>
            </li>
            <li>
                <a href="http://emploi.developpez.com/" title="">Emploi</a>
            </li>
            <li>
                <a href="http://club.developpez.com/contacts/" title="">Contacts</a>
            </li>
        </ul>
    inspecteur dom de webkit
    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
    19
    20
    21
    22
    23
    24
    childNodes: NodeList
    0: Text
    1: HTMLLIElement
    10: Text
    11: HTMLLIElement
    12: Text
    13: HTMLLIElement
    14: Text
    15: HTMLLIElement
    16: Text
    17: HTMLLIElement
    18: Text
    19: HTMLLIElement
    2: Text
    20: Text
    3: HTMLLIElement
    4: Text
    5: HTMLLIElement
    6: Text
    7: HTMLLIElement
    8: Text
    9: HTMLLIElement
    item: function item
    length: 21
    il faut trier par ordre numérique et non alphabétique on a bien 10 éléments et 11 textnodes

    A+JYT

  3. #3
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 623
    Points : 1 370
    Points
    1 370
    Par défaut
    Merci, je viens de comprendre cette partie.

    Par contre il reste toujours des points que je n'ai pas compris, je vais aller faire des tests.

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

Discussions similaires

  1. Diverse question sur les form, DOM, div & innerHTML
    Par terro dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 17/06/2009, 14h07
  2. [DOM] questions sur tableau et DOM
    Par beegees dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 22/04/2009, 09h53
  3. [DOM] Petite question sur le DOM
    Par Nico128 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/02/2008, 12h34
  4. [MooTools] [DOM] Question sur toolkit Mootools
    Par Ylias dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 15/10/2007, 23h09
  5. [DOM] question sur document.write
    Par calitom dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/09/2007, 11h10

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