11548 sujets

JavaScript, DOM et API Web HTML5

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 :

<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 :

a écrit :
header.nextSibling.nodeType == Node.TEXT_NODE // Surprise !

(Ok entre les noeuds H1 et UL il y a un #text)

a écrit :
header.nextSibling.nextSibling == people

(Ok, logique aprés le point 1)

a écrit :
nioute.lastChild == nioute.firstChild

(Ok)

a écrit :
elodie.nextSibling == mimi

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

a écrit :
people.previousSibling == header

(Pas Ok, ben voir point 2)

a écrit :
header.childNodes.length == 1

(Ok)

a écrit :
header.firstChild.nodeType == Node.TEXT_NODE

(Ok)

a écrit :
// Ci-dessous : 6 noeuds texte entrelacés à 5 éléments
people.childNodes.length == 11

(Pas Ok)

a écrit :
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 :


<ul>
    du texte
    <li>premier</li>
    <li>deuxieme</li>
    du texte
</ul>


a écrit :
people.firstChild.nodeValue == ’ ’// En mode HTML en tout cas

(Ok)

a écrit :
elodie.firstChild.nodeName == ’#text’

(Ok)

a écrit :
xavier.lastChild.nodeValue == ’Xavier’

(Ok)

a écrit :
xavier.parentNode.firstChild.nextSibling == al

(Ok)

a écrit :
// 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.