JS Dom
JS Dom
Quand une page web est chargée, le navigateur crée plusieurs objets pour représenter les
informations y figurant.
Ces objets sont classés de manière hiérarchique, l'objet le plus haut dans la hiérarchie (appelé
aussi racine car la hiérarchie est arborescente) étant un objet de la classe window
3
1- Introduction
La programmation côté client (javascript par exemple) permet de modifier certaines parties d’un
document HTML sans recharger toute la page.
Il y a plusieurs avantages :
Chaque page web s'affiche dans une fenêtre C'est l'objet fenêtre (window).
L’objet fenêtre contient l'objet document, qui lui-même peut contenir d’autres objets.
6
2- Objet window
Pour les navigateurs qui supportent les onglets, chaque onglet va posséder son propre objet window.
L’objet window est un objet dit « implicite » : nous n’aurons généralement pas besoin de le
mentionner de manière explicite pour utiliser les méthodes (ou fonctions globales) et propriétés
(ou variables globales) lui appartenant.
Exemple 1 : Pour lancer une alert (qui est déjà une fonction de l’objet window) :
location.href ="https://www.google.com/"
Ou bien
window.location.href ="https://www.google.com/"
8
3- Objet document
L'interface document sert de point d'entrée dans le contenu de la page Web. Il permet de
manipuler tous les objets qui sont inclus dans le document HTML (images, textes, formulaires...).
Le tableau suivant décrit une liste de quelques propriétés de cet objet window :
Propriété Rôle
document.bgColor Renvoie ou définit la couleur d'arrière-plan du document
courant
document.body Renvoie l'élément <body> du document en cours
document.cookie Renvoie une liste des cookies du document, séparés par des
points virgules, ou définit un cookie.
document.html Renvoie l'élément <html> du document en cours
C'est une hiérarchie d'objets destinées à interfacer un langage, pas forcement Javascript,
avec un document XML ou HTML.
Au chargement d’un document HTML, un arbre de la page est élaboré via le DOM.
Chacun des éléments est considéré comme un objet et peut jouer le rôle de nœud, auquel on
peut attacher les qualités de parent, enfant, orphelin ou frère. Cette représentation permet
d’accéder aux propriétés de chacun de ces objets ou groupes d’objets et aux méthodes qui les
équipent.
10
4- DOM
11
5 - Les fonctions de recherche d’éléments dans le DOM
Dans le modèle d'objet DOM HTML, l'objet document représente votre page web. Si vous voulez accéder à
des objets dans une page HTML, vous commencez toujours par accéder à l'objet document.
Fonction Rôle
getElementsByTagName("balise") Retourne un tableau d'éléments HTML à partir du nom de leur balise
getElementsByClassName("classe") Renvoie une collection d’objets de tous les éléments qui ont tous les noms de
classe donnés
getElementsByName("nom") Retourne une collection d'éléments HTML ayant l'attribut name qui vaut nom
Les méthodes de récupération d'éléments peuvent renvoyer deux types de valeurs : soit un élément, soit
une collection d'éléments.
Un élément (ou HTMLElement) est un objet correspondant à la représentation par JavaScript d'une
balise HTML. Cet objet possède notamment diverses propriétés correspondant aux valeurs des divers
attributs que cette balise peut contenir.
Une collection (ou HTMLCollection) est un objet (comparable en fait à un tableau) comprenant
plusieurs éléments.
13
5 - Les fonctions de recherche d’éléments dans le DOM
Cette différence est importante, car JavaScript ne sait traiter qu'un élément à la fois
Si vous récupérez une collection (y compris ne contenant qu'un seul élément), il sera obligatoire de traiter
les éléments qu'il contient individuellement en général avec une boucle :
une collection possède une propriété length correspondant au nombre d'éléments qu'elle contient
14
5 - Les fonctions de recherche d’éléments dans le DOM
<body>
<h1 id="titre">HTML5!</h1>
<p> Paragraphe N 1
<b> texte gras </b> et <b> un autre texte gras </b>
</p>
<h2> <b>Titre</b> </h2>
<p> Paragraphe N 2</p>
</body>
15
5 - Les fonctions de recherche d’éléments dans le DOM
HTMLElement : Il s’agit d’une interface basique regroupant les propriétés reflétant des
caractéristiques intrinsèques aux éléments HTML présents dans le document, ou plutôt des
nœuds du DOM au travers desquels ils sont représentés.
17
6- Propriétés et méthodes des éléments du DOM
Vous trouvez dans le tableau ci-après des exemples des attributs et de méthodes de HTMLElement
Attribut ou fonction Rôle
innerText ou contentText Accéder au contenu texte d'un élément HTML
innerHtml Accéder au contenu Html d’un élément Html
style Accéder à tous les styles CSS de l’élément Html
style.* Accéder à des propriétés CSS individuelles de la forme style.width,
style.fontSize, style.color, style.listStyleType, etc.
getAttribute(attr) Renvoie la valeur de l’attribut attr
setAttribute(' attribute ',' new value ') Pour modifier la valeur d'un attribut HTML
value Accéder à la valeur d’un champ de type input. Peut être modifié
(avec = ) pour changer la valeur de l’input
checked Retourne true si un input (radio ou checkbox) coché, ou false si
décoché.
selected Retourne true si une option d’un select est sélectionnée ou false
sinon.
18
6- Propriétés et méthodes des éléments du DOM
<body>
<img id='img' src=''>
<script>
//sélectionner l’image par son id
let element = document.getElementById("img")
//modifier la source de l’image
element.setAttribute('src','monteau.jfif')
</script>
</body>
19
6- Propriétés et méthodes des éléments du DOM
<body>
<h1 id="titre">HTML5!</h1>
Soit le code Html suivant <p> Paragraphe N 1
<b> texte gras </b> et <b> un autre texte
gras </b>
</p>
<h2> <b>Titre</b> </h2>
<p> Paragraphe N 2</p>
</body>
20
6- Propriétés et méthodes des éléments du DOM
<script>
/* Modifier contenu de l’élément d’id=’titre’ à JavaScript */
let element1 = document.getElementById("titre")
element1.innerText = 'JavaScript'
/* Modifier contenu de l’élément d’id=t2 à jQuery et de couleur rouge */
let element2 = document.getElementById("t2")
element2.innerHTML = "<span style='color:red'>jQuery</span>"
/* Tous les paragraphes seront de couleur bleue */
let elements = document.getElementsByTagName("p")
for(let i=0 ; i< elements.length;i++)
elements[i].style.color='blue'
</script>
21
6- Propriétés et méthodes des éléments du DOM
Soit un input text dont Affichage et le code Html sont comme suit
Affichage
Exemple 5 : checkbox
•Soit l’affichage et le code Html de 3 inputs checkbox de mêmes noms
Connaissances:
<input type="checkbox" name="c1" value="CSS"> CSS
<input type="checkbox" name="c1" value="Html">Html
<input type="checkbox" name="c1" value="JS" checked>JavaScript
•Voici le script qui permet d’afficher dans une alert les contenus des cases cochées
//récupérer les éléments Html du input checkbox
let elementsConnaissances = document.getElementsByName("c1")
/* afficher dans une alert la value cochée du input radio
en parcourant le tableau elementsNiveau
*/
for(let i=0; i<elementsConnaissances.length; i++)
{
if(elementsConnaissances[i].checked==true)
alert(elementsConnaissances[i].value)
}