Js Learn
Js Learn
UE : DEVELOPPEMENT
WEB DYNAMIQUE II
LPRGL 3
Equipe Pédagogique
INFORMATIQUE
Propriété exclusive de PIGIER CI. Toute reproduction même partielle de ce document est strictement interdite.
Sommaire
CHAPITRE I : LES BASES DU LANGAGE .............................................................................................. 7
INTRODUCTION ..................................................................................................................................... 7
I- SYNTAXE DU LANGAGE ............................................................................................................ 7
1- La structure du code JavaScript ................................................................................................ 7
2- Les instructions et séparateurs .................................................................................................. 8
3- Les commentaires ........................................................................................................................ 8
4- Les blocs d'instructions .............................................................................................................. 8
5- Les entrées /sorties....................................................................................................................... 8
II- LES VARIABLES ......................................................................................................................... 9
1- Les variables ................................................................................................................................. 9
2- La déclaration d'une variable .................................................................................................... 9
3- Les types de données .................................................................................................................. 9
4- La portée des variables ............................................................................................................... 9
III- APPLICATION ............................................................................................................................ 9
CHAPITRE II : LES OPERATEURS ET EXPRESSIONS ........................................................................ 10
INTRODUCTION ................................................................................................................................... 10
I- LES OPERATEURS ARITHMETIQUES................................................................................... 10
II- LES OPERATEURS DE COMPARAISON ........................................................................... 10
III- LES OPERATEURS D'ASSIGNATION................................................................................ 11
IV- LES OPERATEURS LOGIQUES ............................................................................................ 11
V- APPLICATION ...................................................................................................................... 11
CHAPITRE III : LES STRUCTURES DE CONTROLE........................................................................... 12
I. LA STRUCTURE CONDITIONNELLE SIMPLE ................................................................ 12
II. LA STRUCTURE ALTERNATIVE ..................................................................................... 12
III. LA STRUCTURE DE CHOIX .............................................................................................. 12
CHAPITRE IV : LES STRUCTURES ITERATIVES ................................................................................ 13
I. LA STRUCTURE while ............................................................................................................ 13
II. LA STRUCTURE do…while ............................................................................................... 13
III. LA BOUCLE for ..................................................................................................................... 13
CHAPITRE V : LES FONCTIONS ............................................................................................................ 14
I- DEFINITION.................................................................................................................................. 14
II- DECLARATION D'UNE FONCTION .................................................................................. 14
III- L'APPEL D'UNE FONCTION ................................................................................................. 14
IV- LES ARGUMENTS DE FONCTION ..................................................................................... 15
2
Apprendre Facilement JavaScript
3
Apprendre Facilement JavaScript
................................................................................. 25
VI- L'OBJET Array............................................................................................................................ 25
1. Les constructeurs ....................................................................................................................... 25
2. Les propriétés ............................................................................................................................. 25
3. Les méthodes .............................................................................................................................. 26
4. Exemple ....................................................................................................................................... 26
VII- L'OBJET Boolean ....................................................................................................................... 26
1. Le constructeur ........................................................................................................................... 26
2. Les propriétés ............................................................................................................................. 26
3. Les méthodes .............................................................................................................................. 26
VIII- L'OBJET Date ......................................................................................................................... 26
1. Les constructeurs ....................................................................................................................... 26
2. Les propriétés ............................................................................................................................. 26
3. Les méthodes .............................................................................................................................. 26
4. Exemple ....................................................................................................................................... 26
IX- L'OBJET function ...................................................................................................................... 26
1. Le constructeur ........................................................................................................................... 26
2. Les propriétés ............................................................................................................................. 26
3. La méthode.................................................................................................................................. 26
4. Exemple ....................................................................................................................................... 26
X- L'OBJET Math ............................................................................................................................ 27
1. Les propriétés ............................................................................................................................. 27
2. Les méthodes .............................................................................................................................. 27
3. Exemple ....................................................................................................................................... 27
XI- L'OBJET Number ....................................................................................................................... 27
1. Le constructeur ........................................................................................................................... 27
2. Les propriétés ............................................................................................................................. 27
3. Les méthodes .............................................................................................................................. 27
4
Apprendre Facilement JavaScript
4. Exemple ....................................................................................................................................... 27
XII- L'OBJET String........................................................................................................................... 27
1. Les propriétés ............................................................................................................................. 27
2. Les méthodes .............................................................................................................................. 27
3. Exemple (Voir cours)................................................................................................................. 27
CHAPITRE IX : LE DOM .......................................................................................................................... 28
INTRODUCTION ................................................................................................................................... 28
I- REPRESENTATION DU DOM D'UN DOCUMENT XHTML ............................................ 28
1. Présentation d'une structure de page HTML ....................................................................... 28
2. Représentation schématique du DOM issu de la structure HTML ................................. 28
3. Description de la représentation schématique du DOM ................................................... 29
II- ACCES DIRECT AUX NŒUDS ............................................................................................. 29
1. La méthode getElementById( ) ............................................................................................... 29
2. La méthode getElementsByName( ) ....................................................................................... 29
3. La méthode getElementsByTagName( ) ................................................................................ 29
III- ACCES AUX ELEMENTS A PARTIR D'UN NŒUD ......................................................... 29
1. childNodes .................................................................................................................................. 29
2. parentNode ................................................................................................................................. 29
3. firstChild ..................................................................................................................................... 30
4. lastChild ...................................................................................................................................... 30
5. nextSibling.................................................................................................................................. 30
6. previousSibling ......................................................................................................................... 30
7. innerHTML ................................................................................................................................. 30
IV- MANIPULATION DES NŒUDS ........................................................................................... 30
1. createElement ............................................................................................................................. 30
2. createTextNode .......................................................................................................................... 30
3. replaceChild ............................................................................................................................... 30
4. removeChild ............................................................................................................................... 30
5. appendChild ............................................................................................................................... 31
6. insertBefore................................................................................................................................. 31
7. hasChildNodes........................................................................................................................... 31
V- MANIPULATION DES ATTRIBUTS ................................................................................... 31
1. attributes ..................................................................................................................................... 31
2. hasAttributes() ........................................................................................................................... 31
3. getAttribute() .............................................................................................................................. 31
5
Apprendre Facilement JavaScript
4. getAttributeNode() .................................................................................................................... 31
5. removeAttribute() ...................................................................................................................... 31
6. removeAttributeNode() ............................................................................................................ 32
7. setAttribute() .............................................................................................................................. 32
8. createAttribute() ......................................................................................................................... 32
VI- INFORMATION SUR LA NATURE DES NŒUDS ........................................................... 32
1. nodeName ................................................................................................................................... 32
2. nodeType..................................................................................................................................... 32
3. nodeValue ................................................................................................................................... 32
VII- APPLICATION .......................................................................................................................... 32
CHAPITRE X : JAVASCRIPT ET LES FORMULAIRES ........................................................................ 33
INTRODUCTION ................................................................................................................................... 33
II- DECLARATION D'UN FORMULAIRE ............................................................................... 33
III- LES ELEMENTS DE FORMULAIRE ..................................................................................... 33
1. La zone de texte .......................................................................................................................... 33
3. Les boutons case à cocher (checkbox) .................................................................................... 33
1. Les listes ...................................................................................................................................... 34
2. La zone de texte multi-lignes .................................................................................................. 34
II- APPLICATION .......................................................................................................................... 34
CHAPITRE VI : LES CLASSES ET OBJETS ............................................................................................ 35
INTRODUCTION ................................................................................................................................... 35
I- DEFINITION DE QUELQUES TERMES.................................................................................. 35
II- CREATION DE CLASSE ET D'OBJETS EN JAVASCRIPT ............................................ 36
1- Définition de la classe .............................................................................................................. 36
2- Création d'un objet .................................................................................................................... 37
3- L'unicité des propriétés ............................................................................................................ 37
III- APPLICATION .......................................................................................................................... 37
6
Apprendre Facilement JavaScript
INTRODUCTION
I- SYNTAXE DU LANGAGE
Appel d'un script à partir d'un fichier JScript dans une page html.
7
Apprendre Facilement JavaScript
3- Les commentaires
Un commentaire simple débute par une double barre inclinée // et se poursuit jusqu'en
fin de ligne.
Un commentaire de plusieurs lignes commence par le couple de symboles /* et se
termine par */ sans que les fins de lignes n'aient de rôle à jouer autre que la mise en
forme.
confirm()
Cette méthode affiche la chaîne de caractères définie en paramètre dans une boîte de
dialogue, ainsi que deux boutons. Lorsque l'utilisateur clique sur OK, la méthode
retourne la valeur booléenne true sinon false. La syntaxe est la suivante: confirm("la
chaîne de caractères").
Exemples: (Voir cours)
8
Apprendre Facilement JavaScript
1- Les variables
Les variables contiennent des données qui peuvent être modifiées lors de l'exécution d'un
programme. On y fait référence par le nom de cette variable. En JavaScript, les variables
sont dynamiques car elles peuvent être réaffectées à des valeurs de types différents.
Un nom de variable doit commencer par une lettre alphabétique ou le signe_ et se
composer de lettres, de chiffres et des caractères _ et $ (à l'exclusion du blanc). Le nombre
de caractères n'est pas précisé. Pour rappel JavaScript est sensible à la casse. Attention
donc aux majuscules et minuscules.
III- APPLICATION
Enoncé
Ecrire un programme en JavaScript qui permettra à partir de deux variables (une de type
texte et l'autre de type nombre) d'afficher à l'écran, mon chiffre préféré est le 7.
9
Apprendre Facilement JavaScript
INTRODUCTION
Les opérateurs JavaScript sont des symboles qui permettent de manipuler et d'évaluer les
variables. Nous en distinguons plusieurs à savoir: les opérateurs arithmétiques, les
opérateurs de comparaison, les opérateurs d'assignation et les opérateurs logiques.
Les opérateurs de comparaison servent à comparé des variables et des valeurs. Dans les
exemples, la valeur initiale de x sera toujours égale à 11.
10
Apprendre Facilement JavaScript
Ce sont les opérateurs qui réalisent des calculs dans lesquels une variable intervient des
deux côtés du signe =. Dans les exemples suivants x vaut toujours 11 et y aura comme
valeur 5.
Aussi appelés opérateurs booléens, ses opérateurs servent à vérifier deux ou plusieurs
conditions.
V- APPLICATION
Enoncé
<body>
<script language="javascript">
i=2;
j=2;
var k=++i;
var l=j++;
document.write("i= "+i+"<br/>");
document.write("j= "+j+"<br/>");
document.write("k= "+k+"<br/>");
document.write("l= "+l+"<br/>");
</script>
</body>
Quel est le résultat généré par ce programme?
11
Apprendre Facilement JavaScript
1- Syntaxe
if (<condition>) {
<bloc d'instructions>;
}
2- Exemple
(Voir cours)
II. LA STRUCTURE ALTERNATIVE
Elle permet d'exécuter une action lorsqu'une condition est vérifiée et d'exécuter une autre
lorsqu'elle ne l'est pas.
1- Syntaxe
if (<condition>) { var=(condition)?expr_vrai : expr_faux;
<bloc d'instructions>;
} ou
else{
<bloc d'instructions>;
}
2- Exemple
(voir cours)
Il est très utile de disposer d'une instruction permettant d'effectuer de manière répétitive
une série d'opérations. JavaScript propose plusieurs types de boucles itératives.
I. LA STRUCTURE while
Elle exécute un bloc d'instructions aussi longtemps que la condition est vérifiée. Si la
condition est fausse au début, aucune instruction n’est exécutée.
1- Syntaxe
while ( <condition> ) {
<bloc d'instructions>;
}
2- Exemple
(voir cours)
Elle exécute un bloc d'instructions aussi longtemps que la condition est vérifiée. Si la
condition est fausse au début, elle exécute une fois le bloc d'instructions.
1. Syntaxe
do {
<bloc d'instructions>;
} while ( <condition> )
2. Exemple
(Voir cours)
a- Syntaxe
b- Exemple
(Voir cours)
13
Apprendre Facilement JavaScript
I- DEFINITION
Une fonction est un groupe de ligne(s) de code de programmation destiné à exécuter une
tâche bien spécifique et que l'on pourra, si besoin est, utiliser à plusieurs reprises. De
plus, l'usage des fonctions améliorera grandement la lisibilité de votre script.
les fonctions propres à JavaScript. On les appelle des "méthodes". Elles sont
associées à un objet bien particulier. Comme exemple, nous avons la méthode
Alert() issue de l'objet window.
les fonctions écrites par vous-même pour les besoins de votre script (c'est à celles-
là que nous nous intéressons maintenant).
Pour déclarer ou définir une fonction, on utilise le mot (réservé) function. La syntaxe
d'une déclaration de fonction est la suivante :
function nom_de_la_fonction(arguments) {
... code des instructions ...
}
Remarque:
Le nom de la fonction suit les mêmes règles que celles qui régissent le nom de
variables (nombre de caractères indéfini, commencer par une lettre, possibilité
d'inclure des chiffres...). Pour rappel, JavaScript est sensible à la casse. Ainsi test()
ne sera pas égal à Test(). En outre, Tous les noms des fonctions dans un script
doivent être uniques.
Lorsqu'une accolade est ouverte, elle doit impérativement, sous peine de message
d'erreur, être refermée. Prenez la bonne habitude de fermer directement vos
accolades et d'écrire votre code entre elles.
Le fait de définir une fonction n'entraîne pas l'exécution des commandes qui la
composent. Ce n'est que lors de l'appel de la fonction que le code de programme est
exécuté. Cet appel se fait par le nom de la fonction suivi des parenthèses.
Exemple: test()
14
Apprendre Facilement JavaScript
A l'inverse, nous pouvons lors de l'appel, ajouter des paramètres dont le nombre
est supérieur à celui utilisé lors de la définition de la fonction.
Exemple: mafonc(0,10,20,30,40,50);
mafonc.arguments[3] ou arguments[3] retourne 30.
V- APPLICATION
(Voir cours)
15
Apprendre Facilement JavaScript
INTRODUCTION
Les tableaux sont des séries de données, généralement du même type (booléens,
numériques ou chaînes de caractères), indicées de 0 jusqu’à ce qu’on veut.
Comme dans la plupart des langages de programmation, JavaScript permet de construire
des tableaux dynamiques
Pour créer un tableau à deux dimensions, on crée un simple tableau. Puis on crée un
tableau pour chaque élément.
Exemples:
(Voir cours)
16
Apprendre Facilement JavaScript
b- La méthode concat()
Cette méthode renvoie un tableau contenant les éléments des tableaux concaténés.
Exemple: Associer les valeurs de trois tableau: tab1(1,2), tab2(3,4), tab3(5,6)
c- La méthode pop()
Cette méthode renvoie la dernière valeur d'un tableau et la supprime.
Exemple: créer un tableau tab constitué de 4 éléments (5,4,1,6) et supprimer le dernier
élément de ce tableau.
d- La méthode shift()
Cette méthode renvoie la première valeur d'un tableau et la supprime.
Exemple: créer un tableau tab constitué de 4 éléments (5,4,1,6) et supprimer le premier
élément de ce tableau.
e- La méthode slice(Arg1,Arg2)
Cette méthode renvoie un tableau qui est sous-ensemble d'éléments contigus (voisins) du
tableau principal. Il prend en paramètre deux arguments séparés par une virgule.
Arg1: désigne la position (en comptant à partir de zéro et partant de la gauche) dans le
tableau principal du premier élément du sous-ensemble.
Arg2: désigne la position (en comptant à partir de un et partant de la gauche) dans le
tableau principal du dernier élément du sous-ensemble.
NB:
- Le deuxième argument étant facultatif, S'il est omis, tous les éléments à partir de
début sont sélectionnés.
- Si Arg2 est négatif, le décompte se fait par rapport au dernier élément et non par
rapport à début.
Exemple: Ecrire un script JavaScript qui ne retourne que 4 et 10
f- La méthode push()
Cette méthode ajoute un ou plusieurs éléments (séparés par des virgules) à la fin d'un
tableau, elle retourne également la longueur du tableau modifié.
Exemple: Ajouter 6 et 5 dans le tableau tab[2,6,4,7,8] et retourner la longueur de ce
tableau.
g- La méthode unshift()
Cette méthode ajoute un ou plusieurs éléments (séparés par des virgules) au début d'un
tableau, elle retourne également la longueur du tableau modifié.
Exemple: Ajouter 6 et 5 dans le tableau tab[2,6,4,7,8] et retourner la longueur de ce
tableau.
17
Apprendre Facilement JavaScript
h- La méthode splice()
Cette méthode permet de modifier, supprimer ou ajouter des valeurs dans un tableau.
Exemples: Ecrire 2 scripts (un permettant de remplacer dans le tableau tab[1,2,3,4,5], les
valeurs 2 et 3 par a et b; et l'autre permettant à partir du tableau tab[1,2,3,4,5] de
supprimer 2 et 3).
i- La méthode reverse()
Cette méthode renvoie une copie du tableau dans l'ordre inversé des éléments de ce
tableau.
Exemple: retourner dans l'ordre inverse, une copie du tableau tab[1,2,3,4,5,6]
IV- APPLICATION
Enoncé
Ecrire un programme un qui permet de rentrer les jours de la semaine (sauf dimanche)
dans un tableau. Utiliser par la suite des fonctions qui ajoutent "dimanche" (première
valeur du tableau) et retranchent mercredi et jeudi du tableau. A la fin, votre programme
doit afficher le tableau initial et le tableau final.
18
Apprendre Facilement JavaScript
INTRODUCTION
Les événements sont des actions de l'utilisateur, qui vont pouvoir donner lieu à une
interactivité. Grâce au Javascript il est possible d'associer des fonctions, des méthodes à
des événements tels que le passage de la souris au-dessus d'une zone, le changement
d'une valeur, etc. Ce sont les gestionnaires d'événements qui permettent d'associer une
action à un événement. La syntaxe d'un gestionnaire d'événement est la suivante :
onEvenement="Action_Javascript_ou_Fonction();"
Les gestionnaires d'événements sont associés à des objets, et leur code s'insèrent dans les
balises de ceux-ci.
Abort (onAbort): Cet événement a lieu lorsque l'utilisateur interrompt le
chargement de l'image.
Blur (onBlur): Se produit lorsque l'élément perd le focus, c'est-à-dire que
l'utilisateur clique hors de cet élément, celui-ci n'est alors plus sélectionné comme
étant l'élément actif.
Change (onChange): Se produit lorsque l'utilisateur modifie le contenu d'un
champ de données.
Click (onClick): Se produit lorsque l'utilisateur clique sur l'élément associé à
l'événement.
dblclick (onDblclick): Se produit lorsque l'utilisateur double-clique sur l'élément
associé à l'événement (un lien hypertexte ou un élément de formulaire). Cet
événement n'est supporté que par les versions de Javascript 1.2 et supérieures.
dragdrop (onDragdrop): Se produit lorsque l'utilisateur effectue un glisser-déposer
sur la fenêtre du navigateur. Cet événement n'est supporté que par les versions de
Javascript 1.2 et supérieures.
error (onError): Se déclenche lorsqu'une erreur apparaît durant le chargement de
la page. Cet événement fait partie du Javascript 1.1.
Focus (onFocus): Se produit lorsque l'utilisateur donne le focus à un élément,
c'est-à-dire que cet élément est sélectionné comme étant l'élément actif.
keydown (onKeydown): Se produit lorsque l'utilisateur appuie sur une touche de
son clavier. Cet événement n'est supporté que par les versions de Javascript 1.2 et
supérieures.
keypress (onKeypress): Se produit lorsque l'utilisateur maintient une touche de
son clavier enfoncée. Cet événement n'est supporté que par les versions de
Javascript 1.2 et supérieures.
keyup (onKeypress) Se produit lorsque l'utilisateur relâche une touche de son
clavier préalablement enfoncée. Cet événement n'est supporté que par les versions
de Javascript 1.2 et supérieures.
19
Apprendre Facilement JavaScript
III- APPLICATION
Exemple1: Affichez à partir d'un lien un message dans une boîte de dialogue.
20
Apprendre Facilement JavaScript
INTRODUCTION
Lorsque vous ouvrez une page Web, le navigateur crée des objets prédéfinis
correspondant à la page Web, à l'état du navigateur, et qui donnent des informations
nécessaires au traitement de données. Les objets de base du navigateur sont les suivants :
navigator, window, location, history, document.
Les objets du navigateur sont classés dans une hiérarchie qui décrit la page affichée à
l'écran, et qui permet d'accéder à n'importe quel objet grâce à une désignation dépendant
de la hiérarchie.
L'objet window est l'objet par excellence dans JavaScript, car il est le parent de chaque
objet qui compose la page web, il contient donc :
<a href="javascript:window.open('URL','nom_de_la_fenetre',
'options_de_la_fenetre')">Lien vers URL</a>
Les options de la fenêtre sont:
directories=yes ou no : Affiche ou non les boutons de navigation.
location=yes/no: Affiche ou non la barre d'adresse.
scrollbars Vaut yes si les barres de défilement s'affichent et no sinon.
statusbar Vaut yes ou no selon que l'on affiche la barre d'état ou non.
toolbar Vaut yes ou no selon que l'on affiche la barre d'outils ou non.
menubar=yes ou no: Affiche ou non la barre de menus.
Resizable=yes ou no: donne la possibilité de changer ou non les dimensions
de la fenêtre.
width = largeur (en pixels): définit la largeur
height = hauteur (en pixels) définit la hauteur
22
Apprendre Facilement JavaScript
L'objet navigator est un objet qui permet de récupérer des informations sur le navigateur
qu'utilise le visiteur. Cela paraît totalement inutile à première vue, toutefois, comme vous
le savez sûrement, il existe de grandes différences entre différentes versions d'un même
navigateur (intègration de nouvelles technologies), ainsi qu'entre des navigateurs de
types différents (les deux antagonistes sont généralement Netscape Navigator © et
Microsoft Internet Explorer qui d'une part n'interprètent pas toutes les balises HTML et
les instructions Javascript de la même manière, et qui, d'autre part, possède parfois des
balises HTML propriètaires, c'est-à-dire qui leur sont propres...).
24
Apprendre Facilement JavaScript
Il existe d'autres propriétés telles que: alinkColor, bgColor, cookie, domain, embeds,
fgColor, lastModified, layers, linkColor, plugins, referrer, title, URL, vlinkColor.
alinkColor : Couleurs des liens actifs (bouton de souris enfoncé)
linkColor : Couleur des liens non actifs et non visités.
vlinkColor : Couleur des liens visités
bgColor : Couleur de fond
fgColor : Couleur du texte
lastModified : Date de dernière modification du document source.
cookie : chaîne de caractères contenant les cookies.
referrer : Adresse de la page d'origine. Permet donc de connaître l'adresse du lien
vers la page en cours.
title : Titre du document indiqué par la balise <TITLE>. Modifiable avec Internet
Explorer.
V- APPLICATION
Après avoir réalisé deux formulaires contenant les informations ci-dessus, affichez dans
une boîte de dialogue:
25
Apprendre Facilement JavaScript
3. Les méthodes
concat, join, pop, push, reverse, shift, slice, splice, sort, toString, unshift
4. Exemple
(Voir cours)
1. Les constructeurs
Date()
Date("mois jour, année heure :minutes :secondes")
Date(année,mois,jour)
Date(année,mois,jour,heure,minutes,secondes)
2. Les propriétés
prototype
3. Les méthodes
getDate, getDay, getHours, getMinutes, getMonth, getSeconds, getTime,
getTimezoneOffset, getYear, parse, setDate, setHours, setMinutes, setMonth, setSeconds,
setTime, setYear, toGMTString, toLocaleString, UTC.
4. Exemple
(Voir cours)
3. La méthode
toString
4. Exemple
(Voir cours)
26
Apprendre Facilement JavaScript
X- L'OBJET Math
C’est un objet prédéfini de JavaScript. Ce n’est pas une classe et ne peut donc être
instanciée. On peut considérer cet objet comme une bibliothèque ou collection de
fonctions et constantes.
1. Les propriétés
E, LN10, LN2, LOG10E, LOG2E, PI, SQRT1_2, SQRT2
2. Les méthodes
Abs, acos, asin, atan, atan2, ceil, cos, exp, floor, log, max, min, pow, random,
round, sin, sqrt, tan.
3. Exemple
(Voir cours)
XI- L'OBJET Number
Cet objet est utilisé pour créer des nombres.
1. Le constructeur
Number (valeur)
2. Les propriétés
MAX_VALUE, MIN_VALUE, NaN, NEGATIVE_INFINITY POSITIVE_INFINITY,
prototype
3. Les méthodes
toString
4. Exemple
(Voir cours)
1. Les propriétés
Length, prototype
2. Les méthodes
Anchor, big, blink, bold, charAt, charCodeAt, concat, fixed, fontcolor, fontsize,
fromCharCode, indexOf, italics, lastIndexOf link, match, replace, search, slice, small,
split, strike, sub, substr, substring, sup, toLowerCase, toUpperCase.
3. Exemple (Voir cours)
27
Apprendre Facilement JavaScript
CHAPITRE IX : LE DOM
OP : Etre capable de manipuler les objets en JavaScript à l'aide du DOM.
INTRODUCTION
Le DOM (Document Object Model ou Modèle Objet de Document en français) est un
arbre d’objets Node (noeud) qui fournit une représentation structurée du document. On
aura donc un node racine avec x nodes fils. La relation entre les nodes est donc verticale
entre des noeuds enfants et des noeuds parents, mais il existe aussi une relation
horizontale entre deux nodes accolés de même niveau hiérarchique. Dans notre contexte,
le modèle DOM représente les éléments HTML, mais de façon général, il est applicable
dans toutes sortes de documents XML, car le HTML est une représentation XML
particulière.
document
html
head body
#Text #Text
28
Apprendre Facilement JavaScript
L'élément <html> est composé de deux éléments appelés enfants (child en anglais) que
sont <head> et <body>. L'élément <html> représente pour ces deux enfants, l'élément
parent. Chaque élément est appelé nœud (node en anglais). Le nœud <head> contient
également de nœuds enfants que sont <meta> et <title>. Le nœud <title> contient un
nœud enfant de type text etc.
1. La méthode getElementById( )
Cette méthode parcourt le document et retourne le nœud portant l'identifiant spécifié en
paramètre.
Syntaxe: document.getElementById('identifiant')
Exemple: n1=document.getElementById('d1');
2. La méthode getElementsByName( )
Cette méthode parcourt le document et retourne une collection de nœuds dont l'attribut
name a pour valeur, celle spécifiée en paramètre
Syntaxe: document.getElementsByName('valeur_name')
Exemple: document.getElementsByName('val1');
3. La méthode getElementsByTagName( )
Cette méthode parcourt le document et retourne une collection de nœuds se référant au
nom de balise spécifié en paramètre.
Syntaxe: document.getElementsByTagName('nom_balise')
Exemple: document.getElementsByTagName('p');
1. childNodes
Cette propriété retourne une collection de nœuds enfants de l'élément courant.
Syntaxe: element.childNodes
Exemple: (Voir cours)
2. parentNode
Chaque élément d'un document XHTML possède un noeud parent à l'exception de
document. Pour accéder au nœud père d'un nœud spécifique, le DOM se sert de la
propriété parentNode qui permet l'accès direct au père supérieur d'un nœud.
Syntaxe: element.parentNode
Exemple: (voir cours)
29
Apprendre Facilement JavaScript
3. firstChild
Retourne le premier nœud enfant du nœud courant ou Null s'il n'en a pas.
Syntaxe: element.firstChild
Exemple: (Voir cours)
4. lastChild
Cette propriété retourne le dernier nœud enfant du nœud courant ou Null s'il n'en a pas.
Syntaxe: element.lastChild
Exemple: (Voir cours)
5. nextSibling
Cette propriété retourne le nœud suivant nœud courant dont le parent est identique. Si le
nœud courant est le dernier, la propriété retourne Null.
Syntaxe: nœud.nextSibling
6. previousSibling
Cette propriété retourne le nœud précédent nœud courant dont le parent est identique. Si
le nœud courant est le premier, la propriété retourne Null.
Syntaxe: nœud.previousSibling
7. innerHTML
Cette propriété permet d'ajouter ou de modifier le contenu de balises html.
Syntaxe: element.innerHTML
Certaines méthodes permettent de lier les nœuds créés aux nœuds existants.
1. createElement
Cette méthode de l'objet document permet de créer un nœud qui n'est rien d'autre qu'une
balise définie en paramètre.
Syntaxe: document.createElement('nom_balise')
Exemple: document.createElement('p');
2. createTextNode
Cette méthode de l'objet document permet de créer un nœud de type texte défini en
paramètre.
Syntaxe: document.createTextNode('definition _du_texte')
Exemple: document.createTextNode('Bienvenue sur notre page');
3. replaceChild
Cette méthode remplace un nœud enfant de l'élément courant par un autre nœud.
Syntaxe: noeudParent.replaceChild(nouvelEnfant, ancienEnfant)
Exemple: (Voir cours)
4. removeChild
Cette méthode supprime un nœud enfant de l'élément parent.
Syntaxe:
noeudParent.removeChild(enfant)
Exemple (Voir cours)
30
Apprendre Facilement JavaScript
5. appendChild
Cette méthode ajoute un nœud spécifié en paramètre, à la fin de la liste des enfants d'un
nœud parent.
Syntaxe: element.appendChild(enfant)
Exemple: (Voir cours)
6. insertBefore
Insère le nœud spécifié juste avant un nœud de référence parmi les enfants du nœud
parent.
Syntaxe: nœudparent.insertBefore( nouveaunoeud,noeudreference)
Exemple: (Voir cours)
7. hasChildNodes
hasChildNodes renvoie une valeur booléenne indiquant si l'élément actuel possède des
nœuds enfants.
Syntaxe: element.hasChildNodes()
Exemple: (Voir cours)
1. attributes
Cette propriété retourne une collection d'attributs se référant au nœud spécifié.
Syntaxe: NodeReference.attributes
Exemple: (Voir cours)
2. hasAttributes()
Cette méthode s'assure que le nœud spécifié admet des attributs; elle retourne donc une
valeur booléenne.
Syntaxe: nœudspecifie.hasAttributes()
3. getAttribute()
Cette méthode retourne la valeur de l'attribut spécifié en paramètre d'un élément donné.
Syntaxe: element.getAttribute('nom_attribut')
Exemple: (Voir cours)
4. getAttributeNode()
Renvoie le noeud d'attribut spécifié pour l'élément courant.
Syntaxe:
attrNode = element.getAttributeNode('nom_attribut')
attrNode est un noeud Attr pour l'attribut demandé.
nom_attribut est une chaîne de caractères qui contient le nom de l'attribut.
Exemple: (Voir cours)
NB: la méthode getAttribute est généralement utilisée à la place de getAttributeNode
pour obtenir la valeur d'un attribut d'un élément.
5. removeAttribute()
Cette méthode supprime un attribut et sa valeur de l'élément courant à partir du nom
d'attribut spécifié en paramètre.
Syntaxe: element.removeAttribute('Nom_attrbut')
Exemple: (Voir cours)
31
Apprendre Facilement JavaScript
6. removeAttributeNode()
Cette méthode permet de supprimer un attribut et sa valeur à partir d'un nœud d'attribut
spécifié en paramètre.
Syntaxe: element.removeAttributeNode(attributeNode)
Exemple: (Voir cours)
7. setAttribute()
Cette méthode ajoute un nouvel attribut ou change la valeur d'un attribut existant pour
l'élément spécifié.
Syntaxe: element.setAttribute(nom, valeur);
nom est le nom du nouvel attribut sous forme de chaîne.
valeur est la nouvelle valeur désirée de l'attribut.
Exemple: (Voir cours)
8. createAttribute()
CreateAttribute crée un nouveau nœud de type attribut. Elle est une méthode de l'objet
document.
Syntaxe: document.createAttribute('nom_attribut')
Exemple: (Voir cours)
Chaque nœud dispose de propriétés permettant de fournir des informations sur lui telles
que: son nom, son type ou même son contenu.
1. nodeName
Cette propriété renvoie le nom d'un nœud courant. Ainsi, nous vous présentons l'
INTERFACE NODE associé au (NAME).
Attr (identique à Attr.name), CDATASection ("#cdata-section"), Comment
("#comment"), Document("#document"), DocumentFragment ("#document-fragment"),
DocumentType (identique à DocumentType.name), Element(identique à
Element.tagName), Entity (nom de l'entité), EntityReference (nom de la référence
d'entité), Notation (nom de la notation), ProcessingInstruction (identique à
ProcessingInstruction.target), Text("#text");
Syntaxe: nœud.nodeName
Exemple: (Voir cours)
2. nodeType
Cette propriété retourne un entier, représentant le type de nœud.
noeud élément (1), noeud attribut(2), noeud texte(3), noeud de section CDATA(4),noeud de
référence à une entité(5), noeud de commentaire(8), noeud de document(9),
Syntaxe: nœud.nodeType
Exemple: (Voir cours)
3. nodeValue
Cette méthode renvoie la valeur du nœud courant sous forme de chaîne de caractères.
Syntaxe: nœud.nodeValue
Exemple: (Voir cours)
VII- APPLICATION
32
Apprendre Facilement JavaScript
INTRODUCTION
Pour intégrer des éléments de formulaire, il faut encadrer les balises par <FORM> et
</FORM>. Un formulaire contient un ou plusieurs éléments que nous appellerons des
contrôles (widgets). Ces contrôles sont notés par exemple par la balise <INPUT TYPE= ...>.
La déclaration d'un formulaire se fait par les balises <FORM> et </FORM>. Il faut noter
qu'en JavaScript, l'attribut NAME="nom_du_formulaire" a toute son importance pour
désigner le chemin complet des éléments.
En outre, les attributs ACTION et METHOD sont facultatifs pour autant que vous ne
faites pas appel au serveur. Une erreur classique en JavaScript est d'oublier de déclarer la
fin du formulaire </FORM> après avoir incorporé un contrôle.
33
Apprendre Facilement JavaScript
name(indique le nom du contrôle. Toutes les cases à cocher portent des noms différents),
checked(indique l'état en cours de l'élément case à cocher), defaultchecked(indique l'état
du bouton sélectionné par défaut), value(indique la valeur de l'élément case à cocher).
b- Exemple (Voir cours)
1. Les listes
a- Définition
Les listes sont définies par la balise <SELECT>. Cette balise définie la zone de la liste.
Les lignes de contenu de la liste sont alimentées par la balises <OPTION>. L'objet
OPTION est assez simple. Il peut avoir comme attributs : name, value, selected.
selected force la sélection de cette occurence dans la liste.
Les propriétés de l'élément <select>
name(donne le nom de la liste), size(détermine le nombre de lignes à afficher), multiple(
détermine la sélection multiple autorisée), disabled(effectue le grisage de la liste
affichée), class(permet d'associer une classe de style à l'objet), style(définit le style de la
liste).
Les méthodes de l'élément <select>
Add(ajoute une ligne à la liste), remove(supprime une ligne de la liste), focus(donne le
focus à la liste), blur(retire le focus de la liste).
Les évènements associés à l'élément <select>
onChange(détecte la sélection d'une nouvelle ligne de la liste), onFocus(détecte la prise
de focus), onblur(détecte la perte de focus).
b- Exemple
(Voir cours)
2. La zone de texte multi-lignes
L'objet TEXTAREA est essentiellement utilisé pour permettre au visiteur de saisir un
texte assez long (message, descriptif...).
Les propriétés de l'objet TEXTAREA
Name(détermine le nom de la zone de texte multi-lignes), rows(détermine le nombre de
lignes du contrôle), cols(détermine le nombre de colonnes du contrôle), disabled(effectue
le grisage du contrôle), readOnly(met le contrôle en lecture seule), class(permet
d'associer une classe de style à l'objet), style(définit le style du contrôle), value(indique la
valeur en cours de la zone de texte,soit celle tapée par l'utilisateur ou si celui-ci n'a rien
tapé, la valeur par défaut).
Les méthodes de l'objet TEXTAREA
focus(donne le focus à la zone de texte milti-lignes), blur(retire le focus).
Les évènements associés à l'objet TEXTAREA
onChange(détecte le changement du contenu), onScroll(détecte le défilement de la zone
de texte multi-lignes), onFocus(détecte la prise du focus par le focus), onBlur(détecte la
perte du focus par le contrôle).
II- APPLICATION
Exo1: saisir du texte dans une zone de texte et afficher le contenu dans une autre zone de
texte.
Exo2: faire la somme de deux nombres et afficher le résultat dans une autre zone de texte.
34
Apprendre Facilement JavaScript
INTRODUCTION
Un langage objet est un langage de programmation qui propose un ensemble de
méthodes (fonctions) et de propriétés (caractéristiques) qui peuvent s’appliquer aux
différents objets définis dans le langage. Il existe des classes d’objets, qui hiérarchisent les
objets qui la constituent. Chaque objet hérite des propriétés et méthodes de l’objet parent.
Cette notion de classe en JavaScript n’est pas aussi pointue et bien définie. C’est pour cela
que le JavaScript est un langage orienté objet ou basé objet selon le terme employé mais
pas objet tout cours. Les objets en JavaScript sont des entités qui décrivent les éléments
contenus dans une page HTML (frame, formulaires, image …) ainsi que les éléments qui
structurent cette page (navigateur).
Le code au kilomètre...
Au début, on écrivait son code ligne par ligne, avec des renvois à un numéro de ligne.
Les programmes étaient heureusement courts, mais dès qu’ils se sont allongés, c’était
illisible et fastidieux.
La programmation fonctionnelle
On a eu idée de créer des fonctions, qui permettaient de ne pas écrire plusieurs fois les
mêmes sections de code, et surtout de concentrer des actions du programme dans de
petites unités.
La programmation orientée objet (POO)
On s’est aperçu que notre mode de penser fonctionne par objets : un stylo qui permet
d’écrire, qui a telle couleur, une feuille de papier qui contient tel texte ou qui est vide etc.
Un objet est constitué de propriétés (la couleur, la marque du stylo) et de méthodes, c’est
à dire, les fonctions qui décrivent le comportement de l’objet ou les actions qu’on peut lui
faire faire (écrire avec un stylo, remplir sa recharge, le ranger etc.).
La Programmation Orientée Objet rend un code plus lisible et plus facile à modifier.
La classe
Une classe décrit une catégorie d’objets (comme des personnes ou des voitures etc.) en
d'autres termes elle possède en son sein plusieurs constructeurs. La classe contient des
propriétés inhérentes à l’objet décrit, plus des méthodes ou fonctions qui définissent le
comportement de l’objet.
On a souvent tendance à confondre classe et objet. La classe est un concept, elle décrit
l’objet, tandis que l’objet est un élément concret. On verra avec les exemples.
En JavaScript, la classe n’existe pas en temps que définition. Dans les véritables langages
objets, on définit une classe et ses objets.
Exemple: (Voir cours)
L'objet
Une fois la classe définie, on peut créer des objets sur le modèle de cette classe. Le
langage crée alors une copie de la classe (avec les propriétés et les méthodes) pour
chaque objet créé.
Exemple: monObjet = new MaClasse(); // création de l'objet monObjet
La propriété
Une propriété est une variable qui décrit un aspect de la classe. Ainsi document.title
décrit la propriété « titre » du document (la page).
35
Apprendre Facilement JavaScript
La méthode
Une méthode n’est rien d’autre qu’une fonction incluse dans une classe. Ainsi
document.write() est une méthode de la classe document, alors que new() (qui permet de
créer un objet à partir d’une classe) est une fonction du langage, donc rattachée à aucun
objet.
Le constructeur
Un constructeur est une méthode spéciale, qui est appelée à chaque fois qu’on crée un
objet avec la fonction new(). JavaScript n’a pas de type « classe », mais il le remplace par
un constructeur. Et c’est le constructeur qui décrit la classe. En fait, constructeur et
création de classe est mélangé.
Le destructeur
Un destructeur est une fonction qui permet de supprimer un objet. Il n’est pas possible
d’en créer en JavaScript : le destructeur par défaut est appelé par la fonction delete(objet)
L'héritage
Dans certains cas, on peut définir une hiérarchie d’objets, des plus simples aux plus
complexes. On a une classe de base, qui contient le minimum de propriétés et de
méthodes puis des classes dérivées, contenant des propriétés et des méthodes plus
spécialisées. Ces classes dérivées peuvent hériter alors des propriétés et des méthodes de
la classe de base, sans les redéfinir.
Pour illustrer les classes et les objets en JavaScript, nous procédons par l'exemple de la
gestion d'un parc automobile.
1- Définition de la classe
En JavaScript, créer une classe revient à définir un constructeur.
a- Création d'un constructeur
function clVoiture(la_marque, le_modele, le_numero, kilometrage, le_prix) {
this.marque = la_marque;
this.modele = le_modele;
this.numero = le_numero;
this.km = kilometrage;
this.prix = le_prix + " €";
}
Remarques:
"marque", "modele", "annee", "km" et "prix" sont les propriétés de la classe
clVoiture. L’opérateur "this" indique que ces variables sont des variables
rattachées à clVoiture.
Les noms des paramètres ("la_marque", etc.) sont différents des noms des
propriétés mais on aurait pu donner les mêmes noms.
b- Création d'un constructeur avec des méthodes
Nous allons créer une méthode qui affiche les infos d’une voiture, pour l’utiliser dans un
listing. Nous allons l’appeler simplement affiche(). Pour ce faire, nous notons qu'il existe
3 manières de créer des méthodes.
36
Apprendre Facilement JavaScript
Dans le constructeur
Exemple: (Voir cours)
Remarques:
- Dans la définition this.affiche = clVoiture_affiche;, on n’indique pas de ().
- Dans la définition de la fonction clVoiture_affiche(), on fait référence aux
propriétés de l’objet en utilisant l’opérateur "this", parce que cette fonction est une
méthode.
A partir de la propriété "prototype"
Exemple: (Voir cours)
Remarques:
- Le résultat est exactement le même que dans la définition précédente : on crée une
méthode affiche(), mais la définition est faite à l’extérieur du constructeur, grâce à
la propriété "prototype".
- Dans le prototype : à gauche du signe "=" le nom de la méthode, à droite le nom de
la fonction correspondante.
- Avec cette façon de faire, nous pouvons définir le prototype n’importe où dans le
script.
Dans le prototype
Exemple: (Voir cours)
Remarques:
- Avec cette façon de procéder, nous ne créons plus de fonction clVoiture_affiche().
- Cependant, il faut écrire la méthode avant le code qui l’appellera, contrairement à
la façon précédente qui permet plus de liberté à ce niveau là.
- Les 2 dernières façons de créer des méthodes sont les seules utilisables, si on veut
ajouter de nouvelles méthodes à des objets JavaScript prédéfinis.
2- Création d'un objet
a- A partir d'une instance de classe
L'instanciation d'un objet, revient à créer réellement cet objet à partir d'un constructeur;
on dit également qu'on crée une instance de classe. Pour ce faire, on utilise la syntaxe
suivante: new nom_constructeur(parametres_du_constructeur);
Exemple: (Voir cours)
III- APPLICATION
En vous servant des classes et objets, écrivez un programme qui permet de gérer les
articles d'un supermarché. A partir d'une méthode, ce programme doit générer la
référence, la désignation et le montant, la quantité commandée et le montant TTC de
l'article commandé.
37