1 / 16

Javascript Document object model

420-B63 Programmation Web Avancée Auteur : Frédéric Thériault. Javascript Document object model. D ocument O bject M odel. DOM est un standard permettant de manipuler et consulter un fichier XML. Accessible de JavaScript. Possible de modifier l’arbre « à tout moment ».

gyan
Download Presentation

Javascript Document object model

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 420-B63 Programmation Web Avancée Auteur : Frédéric Thériault JavascriptDocument object model

  2. Document Object Model • DOM est un standard permettant de manipuler et consulter un fichier XML. • Accessible de JavaScript. • Possible de modifier l’arbre « à tout moment »

  3. Ce que permet de DOM • Naviguer dans le document • Aller directement sur un nœud • balise, texte… • Changer la valeur d’un nœud • balise, attribut, texte… • Créer ou retirer un nœud • balise, attribut… • Modifier le CSS • style d’un élément, • entête CSS, • CSS actif…

  4. p nœud enfant attribut ‘Exemple de code’ b ‘enfants’ classe = ‘maClasse’ nœud enfant ‘ayant’ br ’plusieurs Arbre avec ses noeuds • Soit le code suivant: <p class=‘maClasse’> Exemple de code <b>ayant <br />plusieurs</b>enfants </p>

  5. Accéder aux éléments de l’arbre • En utilisant les fonctions : • parent, firstChild, lastChild, … • Pour accéder aux balises • x = document.body.firstChild • x = document.body.childNodes[0] • x.parentNode • document.getElementById(‘id’).firstChild

  6. Accès direct au noeud • getElementsByTagName() • Permet d’accéder à un ou des nœuds avec leur nom de balise • ex.: x = document.getElementsByTagName(‘p’) • x sera une variable dimensionnée • x.length • getElementById() • mettre un id="identifiantUnique" à la balise <p> • <p id="unik"> • x = document.getElementById('unik')

  7. Modifier le texte d’un noeud • Pour modifier le texte ‘Exemple de code’ par ‘magie!’ • x= document.getElementById('unik'); • x.firstChild.nodeValue = ‘magie!‘; <p id="unik"> Exemple de code <b>ayant <br/> plusieurs</b>enfants </p>

  8. Modifier complètement le code HTML d’un noeud • Pour modifier le HTML du paragraphe par ‘magie!’ • x= document.getElementById('unik'); • x.firstChild.innerHTML = ‘magie!‘; <p id="unik"> Exemple de code <b>ayant <br/> plusieurs</b>enfants </p>

  9. Ajouter / modifier un attribut • setAttribute • x = document.getElementsByTagName('img')[0] • x.setAttribute(‘alt', ‘J. Rabbit') • Écrase l’ancienne valeur si l’attribut existait

  10. Accéder au texte d’un champ de saisie • Soit le code: <form …> <input id="unik" type="text" name="nom" value="" /> </form> • Il est possible d’accéder au champ texte par: var val = document. getElementById('unik').value;

  11. Création de nœuds • Ici nous voulons ajouter le nœud <i> avant <b> Avant: <p id="un"> Exemple de code <b> ayant <br /> plusieurs </b> enfants </p> Après: <p id="un"> Exemple de code <i> <b>ayant <br /> plusieurs</b> </i> enfants </p>

  12. Création de nœuds – les étapes • Créer un nœud <i> • elementi = document.createElement('i') • Repérer le nœud <b> • elementb = document.getElementsByTagName('b')[0] • Cloner le nœud <b> et ses enfants • noeudb = elementb.cloneNode(true) • Ajouter au nœud <i> le nœud <b> et ses enfants • elementi.appendChild(noeudb) • Remplacer le nœud <b> original par le nœud <i> modifié document. getElementsByTagName('p')[0]. replaceChild(elementi,elementb)

  13. Supression de nœuds • Repérer le nœud a ôter <br> • elementbr = document.getElementsByTagName('br')[0] • Repérer le nœud parent <b> • elementparent =elementbr.parentNode; • Retirer le nœud <br> • ancienbr = elementparent.removeChild(elementbr) • elementbr est le nœud enfant à retirer du DOM. • elementparentt est le nœud parent de enfant. • ancienbr conserve une référence au nœud enfant retiré. • Le nœud retiré existe toujours en mémoire, mais ne fait plus partie du DOM. Il peut être réutilisé plus tard dans votre code, via la référence à l'objet ancienbr.

  14. Modification d’un style • element.style.nomduStyle = ‘style’ • ex.: • x = document.body; • x.style.color = 'blue'; • La majeur partie des styles sont en mode lecture/écriture • Si le nom d’un style est séparer par un « - », ôter le « - » et mettre la première lettre du deuxième mot en majuscule • Ex.: background-color • x.style.backgroundColor = ‘red’

  15. Autre exemple… • Utilisation de innerHTML Document.getElementById(‘id’).innerHTML = ‘<div style="border:1px solid black">Hello World !</div>’;

  16. Autre exemple… Exemple de création d’une DIV en utilisant JavaScript sans innerHTML. varnewDiv = document.createElement('div'); newDiv.setAttribute('id',"monIdUnique"); newDiv.setAttribute('class', "maClasseDeStyle"); newDiv.style.left = "35px"; newDiv.style.top = "5px"; newDiv.appendChild(document.createTextNode("hello world")); document.getElementById("idParent").appendChild(newDiv);

More Related