Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Tout d'abord, nous aurons besoin de savoir comment se positionner dans notre document.
Nous allons donc revoir les différentes méthodes permettant de se balader entre les différents noeuds (
node en anglais) que composent notre document.
La méthode la plus simple est le positionnement grâce à un
id :
Code : JavaScript1 | var node = document.getElementById("id_du_bloc");
|
On a ici créé une variable
node qui représente l'élément ayant pour id
id_du_bloc.
Cette variable possède alors plusieurs méthodes permettant d'accéder à d'autres éléments en rapport avec celui-ci :
Code : JavaScript 1
2
3
4
5
6
7
8
9
10
11 | var parent = node.parentNode; //On obtient ainsi le noeud parent à node;
var childList = node.childNodes; //Ici, au contraire, on obtient un tableau avec la liste des enfants de node.
var child1 = node.firstChild; //Ici, on obtient le premier enfant de node
var childx = node.lastChild; //Et ici, vous l'aurez deviné, le dernier
var frerePrec = childx.previousSibling; //On récupère le frère précédent de childx, lui-même enfant de node)
var frereSuiv = child1.nextSibling; //On récupère ici le frère suivant
|
Après avoir vu ce dont nous aurons besoin pour nous positionner dans notre document, nous allons voir ce dont nous aurons besoin pour ajouter des éléments dans notre page.
Certains vont se dire : "c'est simple : il suffit d'utiliser innerHTML" et je leur réponds alors qu'on ne va pas l'utiliser, car il appartient à Internet Explorer et n'est pas repris dans les standards.
Comment ajouter des blocs dans notre document ?
Ça peut paraître un peu difficile quand on débute (je m'en rappelle bien), nous allons procéder ainsi : nous allons créer des éléments "virtuels", c'est-à-dire qui ne seront pas encore dans notre document, puis nous allons les imbriquer entre eux. Enfin, quand tout est imbriqué comme il faut, on les insère où on veut dans notre document.
Voici les méthodes que nous allons utiliser.
Création d'un élément
Code : JavaScript1 | var bloc = document.createElement("div"); //Ici, on crée une div "virtuelle" qui n'est pas encore dans notre document. Vous pouvez créer ce que vous voulez: div, h1, etc.
|
Attribution d'un attribut à cet élément
Code : JavaScript1 | div.setAttribute("id","ma_div"); //Ici, on donne pour id "ma_div" à notre élément
|
Si vous souhaitez ajouter un attribut class, utilisez la méthode suivante :
Code : JavaScript1 | node.className="ma_class"; //L'élément se voit attribuer la classe "ma_class"
|
Création d'un texte
Code : JavaScript1 | var texte = document.createTextNode("J'aime le fromage"); //Ici on a créé un texte
|
Apres avoir créé nos divers éléments, nous les imbriquons de cette manière :
Code : JavaScript1 | node1.appendChild(node2); //Le node2 se retrouve à l'intérieur du node1
|
Quand tout nos éléments virtuels sont imbriqués comme il faut, on les insère quelque part dans le document avec la même méthode :
Code : JavaScript1
2 | var node = document.getElementById("mon_id"); //On récupère un endroit spécifique de notre document
node.appendChild(node1); //On y insère tout ce qu'on a fait précédemment
|
Vous avez vu rapidement les diverses méthodes que nous allons utiliser dans ce TP pour l'ajout de code dans notre document. Même si cette sous-partie fut brève, vous devriez avoir compris puisque vous êtes censés avoir lu le tuto sur le DHTML et Javascript

.
Dans ce TP, nous aurons également besoin d'ajouter des événements dynamiquement aux éléments que nous créerons.
Nous utiliserons bien sûr les deux méthodes
attachEvent (pour IE) et
addEventListener (pour le reste) :
Code : JavaScript1
2 | if(document.all) node.attachEvent("onmousedown",fonction);
else node.addEventListener("mousedown",fonction,true);
|
J'ai utilisé la condition
(document.all) qui vaut
true si on est avec IE.
Notez bien que pour
addEventListener, on n'écrit pas le
on devant l'événement.
fonction est le nom de la fonction qui sera appelée lors d'un
mousedown sur le
node.
D'accord, mais si on veut rajouter des arguments à cette fonction ?
Dans ce cas-là, autant utiliser une fonction anonyme !
Code : JavaScript1
2 | if(document.all) node.attachEvent("onmousedown",function(){ ma_fonction(arguments) });
else node.addEventListener("mousedown",function(){ ma_fonction(arguments) },true);
|