0% ont trouvé ce document utile (0 vote)
156 vues45 pages

Introduction au Document Object Model (DOM)

Le document décrit la structure d'une page web sous forme d'arborescence avec différents types de nœuds, et présente le Document Object Model créé par le navigateur pour représenter et manipuler cette structure.

Transféré par

belkacem nabila
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
156 vues45 pages

Introduction au Document Object Model (DOM)

Le document décrit la structure d'une page web sous forme d'arborescence avec différents types de nœuds, et présente le Document Object Model créé par le navigateur pour représenter et manipuler cette structure.

Transféré par

belkacem nabila
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université Saad Dahlab de Blida

Faculté des sciences


Département de mathématiques

BENAISSI Sellami
[Link]@[Link]
1. Definition DOM

2. La structure d'une page web

3. L'objet Document

4. Accéder a un élément HTML

5. Modifier du contenu HTML


1. Définition DOM
2. La structure d'une page web
3. L'objet Document

Definition DOM
4. Accéder a un élément HTML
5. Modifier du contenu HTML

DOM : Document Object Model

Le DOM est une norme du W3C, permet aux programmes


et scripts d'accéder et de modifier dynamiquement le
contenu, la structure et le style de documents XML ou
HTML.

Le Document Object Model d’une page web va être créé automatiquement


par le navigateur lors du chargement de la page.
Programmation Avancée pour le Web DOM 3
1. Définition DOM
[Link] = 'blue';
2. La structure d'une page web
3. L'objet Document

Definition DOM
4. Accéder a un élément HTML
5. Modifier du contenu HTML

Le DOM est l’interface programmatique (API) qui permet au


développeur web d’accéder et de manipuler le contenu d’une page
web.
• 1 . Il fournit une représentation structurée et orientée objet des
éléments et du contenu d’une page avec les méthodes permettant de
modifier les propriétés de ces objets.

[Link]('texte').textContent = '<span>Texte
modifié</span>';
[Link] = 'blue';
[Link](“p a").href=‘[Link]

Programmation Avancée pour le Web DOM 4


1. Définition DOM
2. La structure d'une page web
3. L'objet Document

Definition DOM
4. Accéder a un élément HTML
5. Modifier du contenu HTML

• 2 . Il fournit aussi des méthodes permettant l’ajout et la suppression


de tels objets, permettant ainsi au développeur web de créer du
contenu dynamique en modifiant le contenu, la structure et le style du
document.

let newP = [Link]('p');


let newTexte = [Link]('Texte écrit en JavaScript');

Programmation Avancée pour le Web DOM 5


1. Définition DOM
2. La structure d'une page web
3. L'objet Document

Definition DOM
4. Accéder a un élément HTML
5. Modifier du contenu HTML

• 3 . Il fournit aussi une interface de gestion des événements, pour


capturer les actions du navigateur et de son utilisateur, et d’y réagir.

let b1 = [Link]('button');
[Link] = function(){alert('Bouton cliqué')};

[Link]('click', function(){alert('Bouton cliqué')});

Programmation Avancée pour le Web DOM 6


1. Définition DOM
2. La structure d'une page web
3. L'objet Document

Definition DOM
4. Accéder a un élément HTML
5. Modifier du contenu HTML

DOM : Document Object Model

Le DOM étant une API, il est utilisé depuis un langage de


programmation qui s’exécute dans le navigateur (eg:
JavaScript).

le DOM a été conçu pour être indépendant de tout langage.

Programmation Avancée pour le Web DOM 7


1. Définition DOM
2. La structure d'une page web
3. L'objet Document

La structure d'une page web


4. Accéder a un élément HTML
5. Modifier du contenu HTML

Une page web n'est rien d'autre qu'un ensemble de


balises imbriquées les unes dans les autres. On peut
la représenter sous une forme hiérarchisée appelée

une arborescence.

L'élément <html> en constitue la racine et contient deux


éléments : <head> et <body>, qui contiennent eux-mêmes
plusieurs sous-éléments.

Programmation Avancée pour le Web DOM 8


1. Définition DOM
2. La structure d'une page web
3. L'objet Document

La structure d'une page web


4. Accéder a un élément HTML
5. Modifier du contenu HTML

Tout dans la page HTML va être considéré comme


un nœud « node » :
le document HTML lui même,
les éléments HTML,
les attributs HTML,
le texte à l’intérieur des éléments,
etc...
Programmation Avancée pour le Web DOM 9
1. Définition DOM
2. La structure d'une page web
3. L'objet Document

La structure d'une page web


4. Accéder a un élément HTML
5. Modifier du contenu HTML

Il existe différents types de nœuds. Dans un


document HTML ordinaire existent dans tous les cas
trois types de nœud importants qu'il nous faut
distinguer :
 les nœuds-élément (element_node),
 les nœuds-attribut (attribute_node),
 et les nœuds-texte (text_node).

Programmation Avancée pour le Web DOM 10


1. Définition DOM
2. La structure d'une page web
3. L'objet Document

La structure d'une page web


4. Accéder a un élément HTML
5. Modifier du contenu HTML

<html> Element Text:


My page

Element <head>
<head> <title>
<title> My page </title> Element

<meta charset="utf-8" /> <meta> Attribute


rel
<link rel="stylesheet" Element

Element <html>
<Link>

Document
href="[Link]" /> Attribute
href
</head>
Text:
<body> Element <h1> Titre1
<h1> Titre1</h1>

Element <body>
<p> Salam,</p> Text:
Element <p> Salam
<p> This is my web page <a
href="[Link] Text:
This
web is my
page
>.</p>

Attribute
href
</body> Element <p> Element <a>
</html> Text:
.

Programmation Avancée pour le Web DOM 11


1. Définition DOM
2. La structure d'une page web
3. L'objet Document

La structure d'une page web


4. Accéder a un élément HTML
5. Modifier du contenu HTML

Et voici le DOM relatif à cette page qui va être créé par le navigateur :
Element Text:
<title> My page
Element Element Attribute Text:
<head <meta> Charset utf-8
> Attribute Text:
Element rel stylesheet
Document

Attribute Text:
<html>

<Link>
Element

href [Link]
Element Text:
<h1> Titre1
Element Text:
Element <p> Salam
<body> Text:
This is my web page
Attribute Text:
Element href [Link]
Element
<p> <a> Text:
Text: Here
.
Programmation Avancée pour le Web DOM 12
1. Définition DOM
2. La structure d'une page web
3. L'objet Document

L'objet Document
4. Accéder a un élément HTML
5. Modifier du contenu HTML

L'objet document est un objet important, qui représente l'ensemble de l'arborescence du


document analysé. Il possède de nombreuses propriétés et méthodes.

le document HTML en soi est représenté dans le DOM par un


objet Document. L’objet Document, comme tous les autres
objets créés par le DOM, est un nœud.

Cet objet Document va donc représenter notre page web en soi


et disposer de méthodes nous permettant de modifier cette
page web.

L’objet Document va également contenir tous les autres objets


créés par le DOM, comme par exemple l’objet Element.

Programmation Avancée pour le Web DOM 13


1. Définition DOM
2. La structure d'une page web
3. L'objet Document

Accéder a un élément HTML


4. Accéder a un élément HTML
5. Modifier du contenu HTML

1. Accès direct
L’objet Document possède de nombreuses propriétés et méthodes. Cinq de ces
dernières permettent de « pointer » directement un ou plusieurs éléments dans
le document.

 La méthode getElementById() ;
 La méthode getElementsByTagName() ;
 La méthode getElementsByClassName() ;
 La méthode querySelector() ;
 La méthode querySelectorAll().

Programmation Avancée pour le Web DOM 14


1. Définition DOM
2. La structure d'une page web
3. L'objet Document

Accéder a un élément HTML


4. Accéder a un élément HTML
5. Modifier du contenu HTML

1. Accès direct

 La méthode getElementById() :

La méthode, getElementById(), va nous permettre de cibler un


élément HTML possédant un attribut id en particulier. C’est
certainement la méthode la plus utilisée.

• Si l’élément est trouvé, getElementById() va renvoyer


l’élément en tant qu’objet.
• Si aucun élément n’est trouvé, la méthode renverra la valeur
null.
let x = [Link](“demo");

Programmation Avancée pour le Web DOM 15


1. Définition DOM
2. La structure d'une page web
3. L'objet Document

Accéder a un élément HTML


4. Accéder a un élément HTML
5. Modifier du contenu HTML

1. Accès direct

 La méthode getElementsByTagName () :

La méthode getElementsByTagName() va retourner des


informations relatives à tous les éléments HTML d’un même «
genre » dans un tableau.
• Cette méthode va prendre le nom du type d’élément à
récupérer en argument.
• L’intérêt de cette méthode est qu’on va ensuite pouvoir
récupérer un élément en question en utilisant un indice du
tableau créé.
let y = [Link]("p");

Programmation Avancée pour le Web DOM 16


1. Définition DOM
2. La structure d'une page web
3. L'objet Document

Accéder a un élément HTML


4. Accéder a un élément HTML
5. Modifier du contenu HTML

1. Accès direct

 La méthode getElementsByClassName() :

La méthode getElementsByClassName() va nous permettre


d’accéder aux éléments HTML disposant d’un attribut class en
particulier.
• getElementsByClassName() va prendre la valeur d’un attribut
class en argument.
• Elle va s’utiliser de manière similaire à la méthode précédente
et renvoyer également un tableau..

let y = document. getElementsByClassName(“class1");

Programmation Avancée pour le Web DOM 17


1. Définition DOM
2. La structure d'une page web
3. L'objet Document

Accéder a un élément HTML


4. Accéder a un élément HTML
5. Modifier du contenu HTML

1. Accès direct

Pour faciliter la sélection d'éléments suivant des critères


complexes, le DOM s'est enrichi de deux nouvelles méthodes. La
première, nommée querySelectorAll, permet de rechercher des
éléments à partir d'un sélecteur CSS. autre méthode de recherche
d'éléments à partir d'un sélecteur CSS s'appelle querySelector.
Elle fonctionne de manière identique à querySelectorAll, mais
renvoie uniquement le premier élément correspondant au
sélecteur passé en paramètre.

Programmation Avancée pour le Web DOM 18


1. Définition DOM
2. La structure d'une page web
3. L'objet Document

Accéder a un élément HTML


4. Accéder a un élément HTML
5. Modifier du contenu HTML

1. Accès direct

 La méthode querySelector () :

La méthode querySelector(), qui prend en argument une


expression CSS, permet de cibler directement le premier élément
d'un ensemble de nœuds.

let x = [Link](“.class1");
let y = [Link](“#p1");
let z = [Link](“p,h1");
let w = [Link](“div p");

Programmation Avancée pour le Web DOM 19


1. Définition DOM
2. La structure d'une page web
3. L'objet Document

Accéder a un élément HTML


4. Accéder a un élément HTML
5. Modifier du contenu HTML

1. Accès direct
 La méthode querySelectorAll () :

La méthode querySelectorAll, qui prend en argument une


expression CSS, permet de cibler tous les éléments d'un
ensemble de nœuds.
• querySelector() va renvoyer des informations relatives au
premier élément trouvé correspondant au sélecteur CSS
sélectionné, tandis que querySelectorAll() va renvoyer des
informations sur tous les éléments correspondants.
• un tableau va être créé lorsqu’on utilise querySelectorAll().

Programmation Avancée pour le Web DOM 20


1. Définition DOM
2. La structure d'une page web
3. L'objet Document

Accéder a un élément HTML


4. Accéder a un élément HTML
5. Modifier du contenu HTML

1. Accès direct
 La méthode querySelectorAll () :

let x = [Link] (“.class1");


let y = [Link] (“#p1");
let z = [Link] (“p,h1");
let w = [Link] (“div p");

Programmation Avancée pour le Web DOM 21


1. Définition DOM
2. La structure d'une page web
3. L'objet Document

Accéder a un élément HTML


4. Accéder a un élément HTML
5. Modifier du contenu HTML

1. Accès direct
Exemple:
let x = [Link](“demo");
let y = [Link]("p");
let z = [Link]("intro");
let a = [Link]("[Link]");
let b = [Link]("[Link]");

Programmation Avancée pour le Web DOM 22


1. Définition DOM
2. La structure d'une page web
3. L'objet Document

Accéder a un élément HTML


4. Accéder a un élément HTML
5. Modifier du contenu HTML

2. Accès relatif
Les méthodes précédentes demandent de connaître précisément
soit l'identifiant, soit le nom exact du nœud cherché. Nous allons
voir maintenant comment il est possible d'accéder à des
collections de nœuds dont on ne connaît pas ces caractéristiques a
priori.

• Naviguer entre les noeuds

Programmation Avancée pour le Web DOM 23


1. Définition DOM
2. La structure d'une page web
3. L'objet Document

Accéder a un élément HTML


4. Accéder a un élément HTML
5. Modifier du contenu HTML

2. Accès relatif
• Naviguer entre les noeuds
Vous pouvez utiliser les propriétés de nœud suivantes pour
naviguer entre les nœuds avec JavaScript:
• parentNode
• childNodes[nodenumber]
• firstChild
• lastChild
• lastElementChild
• nextSibling
• previousSibling

Programmation Avancée pour le Web DOM 24


1. Définition DOM
2. La structure d'une page web
3. L'objet Document

Accéder a un élément HTML


4. Accéder a un élément HTML
5. Modifier du contenu HTML

2. Accès relatif
let y = [Link]

let x = element1. childNodes;

element1. childNodes[0]

Programmation Avancée pour le Web DOM 25


1. Définition DOM
2. La structure d'une page web
3. L'objet Document

Accéder a un élément HTML


4. Accéder a un élément HTML
5. Modifier du contenu HTML

2. Accès relatif
element1. firstChild

element1. lastChild;

element1. lastElementChild;

Programmation Avancée pour le Web DOM 26


1. Définition DOM
2. La structure d'une page web
3. L'objet Document

Accéder a un élément HTML


4. Accéder a un élément HTML
5. Modifier du contenu HTML

2. Accès relatif
element1. previousSibling

element1. nextSibling

Programmation Avancée pour le Web DOM 27


1. Définition DOM
2. La structure d'une page web
3. L'objet Document

Accéder a un élément HTML


4. Accéder a un élément HTML
5. Modifier du contenu HTML

<html>
<head>
<title>My page</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="[Link]" />
</head>
<body>
<h1>Titre1</h1>
<p>Salam,</p>
<p id=‘demo’>This is my web page<a href="[Link]
</body>
</html>

Programmation Avancée pour le Web DOM 28


1. Définition DOM
2. La structure d'une page web
3. L'objet Document

Accéder a un élément HTML


4. Accéder a un élément HTML
5. Modifier du contenu HTML

Element Text:
<title> My page
Element Element
<head> <meta> Attribute
Element rel
<Link> Attribute
href
Element
Document Element Text:
<html>
<h1> Titre1
Element Text:
<p> Salam
Element
Attribute
<body> id
Text:
Element This is my web page
<p> Element Attribute
<a> href
Text:
.
Programmation Avancée pour le Web DOM 29
1. Définition DOM
2. La structure d'une page web
3. L'objet Document

Accéder a un élément HTML


4. Accéder a un élément HTML
5. Modifier du contenu HTML

var x = [Link](“demo");
var a:=[Link];
var b:=x. childNodes[1];
var c:=x. firstChild;
var d:=x. lastChild;
var e:=x. lastElementChild;
var f:=x. previousSibling;
var g:=x. nextSibling;

f
a
c
b
x
e
g  null d
Programmation Avancée pour le Web DOM 30
1. Définition DOM
2. La structure d'une page web
3. L'objet Document

Accéder a un élément HTML


4. Accéder a un élément HTML
5. Modifier du contenu HTML

2. Accéder directement à des éléments particuliers


Finalement, l’objet Document fournit également des propriétés
qui vont nous permettre d’accéder directement à certains
éléments ou qui vont retourner des objets contenant des listes
d’éléments.

body, head , links , title , url , scripts , cookie

[Link] = 'blue';

Programmation Avancée pour le Web DOM 31


1. Définition DOM
2. La structure d'une page web
3. L'objet Document

Accéder a un élément HTML


4. Accéder a un élément HTML
5. Modifier du contenu HTML

2. Accéder directement à des éléments particuliers


Les propriétés qui vont le plus nous intéresser ici sont les suivantes :

• La propriété body qui retourne le nœud représentant l’élément body ;


• La propriété head qui retourne le nœud représentant l’élément head ;
• La propriété links qui retourne une liste de tous les éléments a ou area
possédant un href avec une valeur ;
• La propriété title qui retourne le titre (le contenu de l’élément title) du
document ou permet de le redéfinir ;
• La propriété url qui renvoie l’URL du document sous forme de chaine de
caractères ;
• La propriété scripts qui retourne une liste de tous les éléments script du
document ;
• La propriété cookie qui retourne la liste de tous les cookies associés au
document sous forme de chaine de caractères ou qui permet de définir un
nouveau cookie.

Programmation Avancée pour le Web DOM 32


1. Définition DOM
2. La structure d'une page web
3. L'objet Document

Modifier du contenu HTML


4. Accéder a un élément HTML
5. Modifier du contenu HTML

1. Modifier le contenu d’un élément HTML


La propriété innerHTML va également nous servir à modifier le
contenu d’un élément [Link] cela, il suffit d’utiliser
innerHTML sur un élément et de lui affecter une nouvelle valeur
textuelle

<p id=‘demo’>Salam</p>
Salam

[Link](“demo").innerHTML+=‘ world’;

Salam world

Programmation Avancée pour le Web DOM 33


1. Définition DOM
2. La structure d'une page web
3. L'objet Document

Modifier du contenu HTML


4. Accéder a un élément HTML
5. Modifier du contenu HTML

2. Modifier la valeur d’un attribut HTML


Pour modifier la valeur d’un attribut HTML, nous allons
généralement utiliser la propriété attribute de l’objet Element.
Pour utiliser cette propriété, nous n’allons pas écrire attribute
mais bien le nom de l’attribut donc on souhaite modifier la
valeur (comme href par exemple). Ensuite, nous n’aurons plus
qu’à affecter une nouvelle valeur à l’attribut ciblé.
<p>This is my web page<a href="[Link]
[Link](“p a").href=‘[Link]

Programmation Avancée pour le Web DOM 34


1. Définition DOM
2. La structure d'une page web
3. L'objet Document

Modifier du contenu HTML


4. Accéder a un élément HTML
5. Modifier du contenu HTML

2. Modifier la valeur d’un attribut HTML


Notez également que dans le cas d’attributs non standards (ce qui est très rare), nous
utiliserons alors plutôt les méthodes getAttribute() (pour accéder à l’attribut) et
setAttribute() (pour modifier un attribut).

<p>This is my web page<a href="[Link]

[Link](“p a").href=‘[Link]

var x=[Link](“p a");


[Link](“href”, ‘[Link]

Programmation Avancée pour le Web DOM 35


1. Définition DOM
2. La structure d'une page web
3. L'objet Document

Modifier du contenu HTML


4. Accéder a un élément HTML
5. Modifier du contenu HTML

3. Modifier le CSS d’un élément HTML


Pour ajouter ou modifier le style CSS d’un élément HTML, on va
utiliser la propriété style de l’objet Element suivie de la propriété
CSS à ajouter ou modifier.

<body>
<h1>Titre1</h1>
<p>Salam,</p>
<p>This is my web page<a href="[Link]
</body>

[Link](“p").[Link]=‘green’;
[Link](“p").[Link]=’35px’;

Programmation Avancée pour le Web DOM 36


1. Définition DOM
2. La structure d'une page web
3. L'objet Document

Modifier du contenu HTML


4. Accéder a un élément HTML
5. Modifier du contenu HTML

3. Modifier le CSS d’un élément HTML


<body>
<h1>Titre1</h1>
<p>Salam,</p>
<p>This is my web page<a href="[Link]
</body>

var x=document .querySelectorAll(" p,h1,h3 " ) ;

for (var i=0;i<x .length ;i++) {


x[i].style. font-family =” arial, sans-serif”;
x[i].style. color =”#FFCC66”}

Programmation Avancée pour le Web DOM 37


TP3 Exercice 1
utilisez la technologie SVG et JavaScript pour réaliser le
programme suivant, Une page Web avec :
- une zone graphique (400x400) contenant un cercle rouge (r=40)
au milieu.
- et quatre boutons pour déplacer le cercle vers le haut, le bas, la
droite et la gauche.

Programmation Avancée pour le Web JavaScript 38


TP3 Exercice 1 Solution
Sol1
<svg width="440" height="440" style="background-color:skyblue">
<circle r="40" cx="200" cy="200" fill="red" id="circl1" />
Sorry, your browser does not support inline SVG.
</svg>

<br>
<button onclick="moveUp();">moveUp</button>
<button onclick="moveDown();">moveDown</button>
<button onclick="moveLeft();">moveLeft</button>
<button onclick="moveRight() ;">moveRight</button>
<br>

Programmation Avancée pour le Web JavaScript 39


TP3 Exercice 1 Solution
Sol1

let circl=[Link]('circl1');
let cx =Number([Link]('cx'));
let cy =Number([Link]('cy'));
function moveUp(){
cy =cy-10; [Link]('cy',cy-10);
}
function moveDown(){
cy =cy+10; [Link]('cy',cy-10);
}
function moveLeft(){
cx =cx-10; [Link]('cx',cx-10);
}
function moveRight(){
cx =cx+10; [Link]('cx',cx-10);
}

Programmation Avancée pour le Web JavaScript 40


TP3 Exercice 1 Solution
Sol2

<svg width="440" height="440" style="background-color:skyblue">


<circle r="40" cx="200" cy="200" fill="red" id="circl1" />
Sorry, your browser does not support inline SVG.
</svg>

<br>
<button onclick="move(0,-10);">moveUp</button>
<button onclick="move(0,10);">moveDown</button>
<button onclick="move(-10,0);">moveLeft</button>
<button onclick="move(10,0) ;">moveRight</button>
<br>

Programmation Avancée pour le Web JavaScript 41


TP3 Exercice 1 Solution
Sol2

let cer=[Link]('circl1');

function move(x1,y1){
let x=Number([Link]('cx'));
let y=Number([Link]('cy'));
[Link]('cy',y+y1);
[Link]('cx',x+x1);
}

Programmation Avancée pour le Web JavaScript 42


TP3 Exercice 4
Écrivez un script JavaScript qui dessine un échiquier ; en utilisant
l’élément HTML <table>.

Programmation Avancée pour le Web JavaScript 43


TP3 Exercice 4
Note:
Les nouveaux noeuds DOM sont créés à l'aide de la méthode
[Link](X).en utilisant le nom de balise fourni en
paramètre ;
La méthode appendChild(Y) ajoute un nouvel enfant.

Exemple : Le code suivant ajoute un nouvel élément de liste (<li>) à la fin de


la liste:
<ul id="list"><li>Item</li></ul>
<script>
let list = [Link]("list");
let newNode = [Link]("li");
[Link](newNode);
</script>

Programmation Avancée pour le Web JavaScript 44


TP3
<script >
Exercice 4 Solution
let tbl = [Link]('table');
[Link]('border', '1');
let tbdy = [Link]('tbody');
for (let i = 0; i < 8; i++)
{
let tr = [Link]('tr');
[Link]('height', '50px');
for (var j = 0; j < 8; j++)
{
let td = [Link]('td');
if((i+j)%2 == 0)
{
[Link] = 'black';

}
[Link]('width', '50px');
[Link](td)
}
[Link](tr);
}
[Link](tbl)
</script> 45
Programmation Avancée pour le Web JavaScript

Vous aimerez peut-être aussi