Professional Documents
Culture Documents
Partie 2 - Manipulation HTML DOM
Partie 2 - Manipulation HTML DOM
120 heures
01 - DÉFINIR LE RÔLE DE JAVASCRIPT DANS LE
SOMMAIRE DÉVELOPPEMENT
Comparer un langage de script avec un langage compilé
Comprendre l’architecture client/serveur
Découvrir l’écosystème de développement
5. - MANIPULER JQUERY
Découvrir jQuery
Découvrir AJAX
PARTIE 3
Manipuler les éléments d’une page avec
dom
30 heures
CHAPITRE 1
Comprendre l’arbre dom, les nœuds
parents et enfants
• Arbre DOM
• Objet Document
• Navigation dans le DOM (parentNode, childNodes, … )
10 heures
CHAPITRE 1
COMPRENDRE L’ARBRE DOM, LES NŒUDS
PARENTS ET ENFANTS
1. Arbre DOM
2. Objet Document
3. Navigation dans le DOM (parentNode, childNodes, …)
01 - Comprendre l’arbre dom, les nœuds
parents et enfants
Arbre DOM
6
01 - Comprendre l’arbre dom, les nœuds
parents et enfants
Arbre DOM
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
meta
head
<title>Index</title> Title Index
</head> html h1 Ma page web
<body> Bonjour, nous sommes les stagiaires
body p de la filière développement digital
<h1>Ma page web</h1>
<p>Bonjour, nous sommes les stagiaires de la filière développement Nous étudions à l’
digital</p> p
a ENSAK
PARTIE 3
7
CHAPITRE 1
Comprendre l’arbre dom, les nœuds
parents et enfants
1. Arbre DOM
2. Objet Document
3. Navigation dans le DOM (parentNode,
childNodes, …)
01 - Comprendre l’arbre dom, les nœuds
parents et enfants
Objet Document
Objet « document »
• L'objet document correspond à l’élément <html> de la page Web.
• La variable document est la racine du DOM.
• Cette variable est un objet et dispose des propriétés head et body qui permettent d'accéder respectivement aux éléments <head>
et <body> de la page.
9
01 - Comprendre l’arbre dom, les nœuds
parents et enfants
Objet Document
Méthode Description
document.getElementById(id) Retourne un élément par la valeur de l’attribut ID
Exemple :
10
01 - Comprendre l’arbre dom, les nœuds
parents et enfants
Objet Document
Méthode Description
document.createElement(element) Créer un élément HTML
11
01 - Comprendre l’arbre dom, les nœuds
parents et enfants
Objet Document
Méthode Description
element.innerHTML Permet de récupérer tout le contenu HTML d'un élément du DOM
12
CHAPITRE 1
Comprendre l’arbre dom, les nœuds
parents et enfants
1. Arbre DOM
2. Objet Document
3. Navigation dans le DOM (parentNode, childNodes, …)
01 - Comprendre l’arbre dom, les nœuds
parents et enfants
Navigation dans le DOM
<ul>
<li>1er élément</li>
<li>2ème élément
PARTIE 3
<p>paragraphe</p>
<a>Lien</a>
</li>
<li>3ème élément</li>
</ul>
Figure 12 : Relation entre les nœuds
14
01 - Comprendre l’arbre dom, les nœuds
parents et enfants
Navigation dans le DOM
//Body est un
nœud élément
15
01 - Comprendre l’arbre dom, les nœuds
parents et enfants
Navigation dans le DOM
16
01 - Comprendre l’arbre dom, les nœuds
parents et enfants
Navigation dans le DOM
var h1 = document.body.childNodes[1];
17
01 - Comprendre l’arbre dom, les nœuds
parents et enfants
Navigation dans le DOM
18
01 - Comprendre l’arbre dom, les nœuds
parents et enfants
Navigation dans le DOM
Remarque
• Re-exécuter ce code en supprimant l’espace entre l’élément « div » et la
balise « h1 »
19
01 - Comprendre l’arbre dom, les nœuds
parents et enfants
Navigation dans le DOM
<div id="parent">
<h1>Un titre</h1>
<p>Un paragraphe</p>
</div>
<script>
let element = document.getElementById("parent");
PARTIE 3
20
01 - Comprendre l’arbre dom, les nœuds
parents et enfants
Navigation dans le DOM
<div id="parent">
<h1>Un titre</h1>
<p>Un paragraphe</p>
</div>
<script>
let element = document.getElementById("parent");
let DernElt = element.lastChild.nodeName;
console.log(DernElt); // #text
</script>
PARTIE 3
21
01 - Comprendre l’arbre dom, les nœuds
parents et enfants
Navigation dans le DOM
<div id="parent">
<h1>Un titre</h1>
<p>Un paragraphe</p>
</div>
<script>
let element = document.getElementById("parent");
let DernElt = element.lastElementChild.nodeName;
console.log(DernElt); // P
</script>
PARTIE 3
22
01 - Comprendre l’arbre dom, les nœuds
parents et enfants
Navigation dans le DOM
<script>
let element = document.getElementById("parent");
for (let i = 0; i < element.childNodes.length; i++) {
console.log(element.childNodes[i]);
PARTIE 3
}
</script>
La liste « childNodes » comprend les nœuds '#text' et 'element'. Figure 14 : Résultat du code
23
01 - Comprendre l’arbre dom, les nœuds
parents et enfants
Navigation dans le DOM
<script>
let parent = document.getElementById("parent");
for (let i = 0; i < parent.children.length; i++)
{ Figure 15 : Résultat du code
console.log(parent.children[i].nodeName + " - "+
PARTIE 3
parent.children[i].textContent);
}
</
script>
24
01 - Comprendre l’arbre dom, les nœuds
parents et enfants
Navigation dans le DOM
parent.nodeName);
console.log(parent);
</script>
25
01 - Comprendre l’arbre dom, les nœuds
parents et enfants
Navigation dans le DOM
<div id="parent">
<h1 id="id1">Un titre</h1>
<p>Un paragraphe</p>
<a href="#">Un lien</a>
</div>
<script>
let element = document.getElementById("id1");
let parent = element.parentElement; Figure 17 : Résultat du code
console.log("Elément parent - " + parent.nodeName);
// parentNode vs parentElement
PARTIE 3
console.log(document.documentElement.parentNode); // document
console.log(document.documentElement.parentElement); // null
</script>
26
01 - Comprendre l’arbre dom, les nœuds
parents et enfants
Navigation dans le DOM
<div id="parent">
<h1 id="id1">Un titre</h1>
<p>Un paragraphe</p>
<a href="#">Un lien</a>
</div>
<script>
let element = document.getElementById("id1"); Figure 18: Résultat du code
let next = element.nextSibling;
console.log("Élément frère suivant - " + next.nodeName);
console.log(next); </script>
PARTIE 3
27
01 - Comprendre l’arbre dom, les nœuds
parents et enfants
Navigation dans le DOM
<script>
let element = document.getElementById("id1");
Figure 19 : Résultat du code
let EltSuiv = element.nextElementSibling;
console.log("Elément frère suivant - " +
EltSuiv.nodeName);
PARTIE 3
console.log(EltSuiv);
</script>
28
01 - Comprendre l’arbre dom, les nœuds
parents et enfants
Navigation dans le DOM
<div id="parent">
<h1 id="id1">Un titre</h1>
<p>Un paragraphe</p>
<a href="#">Un lien</a>
</div>
</script>
29
01 - Comprendre l’arbre dom, les nœuds
parents et enfants
Navigation dans le DOM
</script>
30
CHAPITRE 2
Connaître les bases de la manipulation du
dom en javascript
10 heures
CHAPITRE 2
Connaître les bases de la manipulation du
dom en javascript
Sélecteurs CSS
En javaScript, on peut chercher les éléments par leur sélecteur CSS :
• La méthode querySelector() renvoie le premier élément qui correspond à un ou plusieurs sélecteurs CSS spécifiés.
• La méthode querySelectorAll() renvoie tous les éléments correspondants.
Syntaxe :
document.querySelector(sélecteur CSS)
document.querySelectorAll(sélecteur CSS)
PARTIE 3
33
02 - Connaître les bases de la manipulation du
dom en javascript
Sélecteurs (simples, multiples…)
La méthode querySelector()
Exemples :
• //Obtenir le premier élément <p> dans le
document :
document.querySelector("p");
• //Obtenir le premier élément <p> du
document qui a class="par":
document.querySelector("p.par");
• //Modifier le texte de l’élément dont l’attribut
id="id1":
document.querySelector("#id1").innerHT
ML = "Bonjour!";
• //Obtenir le premier élément <p> dans le
PARTIE 3
La méthode querySelectorAll()
Exemples :
• //Obtenir tous les éléments <p> du document et définir la couleur d'arrière-plan du premier élément <p>
(index 0) : let x = document.querySelectorAll("p");
x[0].style.backgroundColor = "red";
• //Obtenir tous les éléments <p> du document qui ont l’attribut class="par", et définir l'arrière-plan du premier élément
<p> : let x = document.querySelectorAll("p.par");
x[0].style.backgroundColor = "red";
• // Calculer le nombre d'éléments qui ont l’attribut class="par" (en utilisant la propriété length de l'objet NodeList) :
var x = document.querySelectorAll(".par").length;
// Définir la couleur d'arrière-plan de tous les éléments du document qui ont l’attribut class="par":
let x = document.querySelectorAll(".par");
for (let i = 0; i < x.length; i++) { x[i].style.backgroundColor = "red"; }
• //Définir la bordure de tous les éléments <a> du document qui ont un attribut "target":
PARTIE 3
let x = document.querySelectorAll("a[target]");
for (let i = 0; i < x.length; i++) { x[i].style.border = "10px solid red"; }
35
02 - Connaître les bases de la manipulation du
dom en javascript
Sélecteurs (simples, multiples…)
La méthode querySelectorAll()
Exemples:
• //Sélectionner le premier paragraphe du document et modifier son texte avec la
propriété textContent */ document.querySelector('p').textContent = '1er paragraphe
du document';
let documentDiv = document.querySelector('div'); //1er div du document
• //Sélectionner le premier paragraphe du premier div du document et
modifier son texte documentDiv.querySelector('p').textContent = '1er
paragraphe du premier div’;
• //Sélectionner le premier paragraphe du document avec un attribut
class='bleu' et changer sa couleur en bleu avec la propriété style */
document.querySelector('p.bleu').style.color = 'blue’;
PARTIE 3
36
CHAPITRE 2
Connaître les bases de la manipulation du
dom en javascript
38
02 - Connaître les bases de la manipulation du
dom en javascript
Modes d’Accès aux éléments
39
02 - Connaître les bases de la manipulation du
dom en javascript
Modes d’Accès aux éléments
Exemple :
document.body.style.color = 'blue';
40
CHAPITRE 3
Manipuler les éléments html
10 heures
CHAPITRE 3
Manipuler les éléments html
Remarque
• L'élément crée par la méthode createElement() ne s'attache pas
automatiquement au document
Exemples :
let element1 = document.createElement('p');
console.log(element1); // <p></p>
43
03 - Manipuler les éléments html
Manipulation des éléments
Exemple :
44
03 - Manipuler les éléments html
Manipulation des éléments
Exemple :
PARTIE 3
45
CHAPITRE 3
Manipuler les éléments html
Exemple :
<div>
<div>
<label>Nom : </label><br>
<input type="text" class="style1" id="b1">
</div>
</div>
<script>
// Modifier le style de l’élément qui a la l’attribut class=style1
document.getElementsByClassName("style1").style.borderColor = "red";
PARTIE 3
</script>
47
03 - Manipuler les éléments html
Mise à jour des styles, attributs et classes
<div>
<div>
<label>Nom : </label><br>
<input type="text" class="style1" id="b1">
</div>
</div>
<script>
// Modifier le style de l’élément qui a la l’attribut class=style1 en lui associant une classe nommée
styleErreur
document.getElementsByClassName("style1").className = "styleErreur";
PARTIE 3
</script>
48
03 - Manipuler les éléments html
Mise à jour des styles, attributs et classes
Exemple 1 : Ajouter les attributs class et disabled à l'élément Exemple 2 : Mettre à jour la valeur de l'attribut href de l’élément <a>.
<button>
<button type="button" id="Btn">Click</button> <a href="#" id="lien">ENSAK</a>
<script> <script>
// sélectionner l’élément // sélectionner l’élément
let btn = document.getElementById("Btn"); let lien = document.getElementById("lien");
btn.setAttribute("disabled", "");
</script> </script>
49
03 - Manipuler les éléments html
Mise à jour des styles, attributs et classes
<script>
// sélectionner l’élément
let lien = document.getElementById("lien");
</script>
50
CHAPITRE 3
Manipuler les éléments html
Les attributs :
• Label : prend une valeur textuelle, spécifie le label du menu.
• Type : prend l’une des valeurs (list, toolbar, contex). Son rôle est de spécifier le type du
menu à afficher.
Remarque
52
03 - Manipuler les éléments html
Création DOMenu Object
53
PARTIE 4
Gérer les événements utilisateur
12 heures
CHAPITRE 1
Comprendre la notion d’événement pour
gérer l’interactivité
07 heures
CHAPITRE 1
Comprendre la notion d’événement pour
gérer l’interactivité
Les événements sont généralement traités par une fonction, qui s'exécute après que l'événement soit
produit.
57
01 - Comprendre la notion d’événement pour
gérer l’interactivité
Définition d’un évènement
Gestionnaire d'événements :
Le gestionnaire d'événements correspond généralement à une
fonction appelée suite à la production de l’événement.
58
CHAPITRE 1
Comprendre la notion d’événement pour
gérer l’interactivité
Méthode addEventListener()
La méthode addEventListener appliquée sur un élément DOM, lui ajoute un gestionnaire pour un événement
particulier. Cette fonction sera appelée à chaque fois que l'événement se produit sur l'élément.
Remarque
Syntaxe : la méthode prend deux paramètres : le type de l'événement et la fonction qui gère l'événement.
Méthode addEventListener()
Exemple 1 :
let element = document.getElementById("btn");
element.addEventListener("click", message);
cliqué!")});
61
01 - Comprendre la notion d’événement pour
gérer l’interactivité
Méthode addEventListener
Exemple :
let element =
document.getElementById("btn");
element.addEventListener("click",
fct1);
element.addEventListener("click",
fct2);
function fct1() {
alert("Fonction 1");
PARTIE 4
function fct2() {
alert("Fonction 2");
}
62
01 - Comprendre la notion d’événement pour
gérer l’interactivité
Méthode addEventListener
function clickFct() {
alert("Vous avez cliqué :");
}
function mouseoverFxn()
{ element.style.background =
"red"; element.style.padding =
"8px";
}
PARTIE 4
function mouseoutFxn()
{ element.style.background =
"white"; element.style.padding =
"2px";
}
63
}
01 - Comprendre la notion d’événement pour
gérer l’interactivité
Méthode addEventListener
<script>
let element = document.querySelector(".style1"); //Sélectionner l’élement button
element.addEventListener("mouseover", fct1); // Ajouer un évenement de type « mouseover »
function fct1(){
alert("Evénement déclenché!");
}
PARTIE 4
function SupprimerEvnt(){
element.removeEventListener("mouseover", fct1);
}
</script>
64
CHAPITRE 1
Comprendre la notion d’événement pour
gérer l’interactivité
66
01 - Comprendre la notion d’événement pour
gérer l’interactivité
MouseEvents
• mouseover / mouseout
L’événement mouseover se déclenche lorsque le curseur de la souris se déplace à l'extérieur d’un élément.
L’événement mouseout se déclenche lorsque le curseur de la souris survole un élément, puis se déplace vers autre élément.
PARTIE 4
• mouseenter / mouseleave
L’événement mouseenter se déclenche lorsque le curseur de la souris se déplace de l'extérieur à l'intérieur d'un élément.
L’événement mouseleave se déclenche lorsque le curseur de la souris se déplace de l'intérieur à l'extérieur d'un élément.
68
01 - Comprendre la notion d’événement pour
gérer l’interactivité
MouseEvents
btn.addEventListener('click',(event)
=> { console.log('click');
PARTIE 4
});
69
01 - Comprendre la notion d’événement pour
gérer l’interactivité
MouseEvents
70
01 - Comprendre la notion d’événement pour
gérer l’interactivité
MouseEvents
71
01 - Comprendre la notion d’événement pour
gérer l’interactivité
MouseEvents
Exemple :
<!DOCTYPE html>
<html>
<head>
<title>Les événements de la souris</title>
<style>
#pos { background-color: goldenrod; height: 200px; width: 400px; }
</style>
</head>
<body>
<p>Faire bouger la souris pour voir sa position.</p>
<div id="pos"></div>
<p id="affichage"></p>
<script>
let pos = document.querySelector(‘#pos');
pos.addEventListener('mousemove', (e) => {
let affichage = document.querySelector('#affichage');
PARTIE 4
72
CHAPITRE 1
Comprendre la notion d’événement pour
gérer l’interactivité
Remarques
• Les événements keydown et keypress sont déclenchés avant toute modification apportée à la zone de texte.
• L'événement keyup se déclenche après que les modifications aient été apportées à la zone de texte.
74
01 - Comprendre la notion d’événement pour
gérer l’interactivité
Interaction avec le clavier
Dans le code suivant, les trois gestionnaires d'événements seront appelés à l’enfoncement d’une touche de caractère :
});
75
01 - Comprendre la notion d’événement pour
gérer l’interactivité
Interaction avec le clavier
<script>
let zone = document.getElementById('message');
zone.addEventListener('keydown', (event) =>
{ console.log(`key=${event.key},code=$
PARTIE 4
{event.code}`);
});
</script>
76
CHAPITRE 2
Gérer les éléments d’un formulaire
05 heures
CHAPITRE 2
Gérer les éléments d’un formulaire
}
function ResetForm()
{ document.getElementById("FORM1").reset(
);
document.getElementById("message").innerHTML="
Formulaire réinitialisé";
199
}
CHAPITRE 2
Gérer les éléments d’un formulaire
<form onsubmit="EnvoyerForm(event)">
<input type="text">
<button type="submit">Envoyer</button>
</form>
<script
type="text/JavaScript">
function EnvoyerForm(event)
{ event.preventDefault();
window.history.back();
PARTIE 4
}
</script>
HTML5 a introduit un nouveau concept de validation HTML appelé « validation des contraintes » qui est basée sur :
PARTIE 4
Validation des
Validation des Validation des
contraintes par les
contraintes par les contraintes par les
propriétés et les
attributs d’une entrée. sélecteurs CSS.
méthodes du DOM.
83
02 - Gérer les éléments d’un formulaire
Validation d’un formulaire
Validation des contraintes en utilisant les sélecteurs CSS Validation des contraintes par les attributs
Sélecteur Description Attribut Description
:disabled Sélectionner les éléments désactivés disabled L'input doit être désactivé
:invalid Sélectionner les éléments dont la valeur est invalide max Spécifier la valeur maximale d'un élément input
:optional Sélectionner les éléments d'entrée sans attribut "requis" min Spécifier la valeur minimale d'un élément input
spécifié
pattern Spécifier un modèle de chaine (Regex)
:required Sélectionner les éléments d'entrée avec l'attribut "requis"
spécifié required Saisie obligatoire
:valid Sélectionner les éléments d'entrée avec des valeurs valides type Spécifier le type d'un élément input
PARTIE 4
84
02 - Gérer les éléments d’un formulaire
Validation d’un formulaire
function validerForm() {
let x = document.forms["myForm"]["nom"].value;
if (x == "") {
alert("Le champ “nom” doit être saisi");
return false;
}
}
85
02 - Gérer les éléments d’un formulaire
Validation d’un formulaire
86