Atteindre les objets
Il est possible d'atteindre (comprenez
accéder à) tous les éléments de la page HTML avec deux méthodes de l'objet
document :
- document.getElementById("id");
- document.getElementsByTagName("balise");
getElementById("id")
Cette méthode permet d'accéder très facilement à l'élément dont l'id est
id.
Je vous rappelle que deux éléments différents doivent avoir des id
s différents. Cette fonction nous donne donc bien
un élément (ouf

).
getElementsByTagName("balise")
Cette méthode retourne sous forme de tableau tous les éléments HTML dont on donne la balise en argument.
Code : JavaScript1 | document.getElementsByTagName('textarea');
|
Cet exemple va retourner un tableau contenant tous les éléments
<textarea> de la page.
Puisque la méthode retourne un tableau, il est bien sûr possible d'accéder à chacun des éléments. Si on veut accéder au second
<textarea> de la page, on procédera donc ainsi (rappelez-vous, on commence à compter à partir de 0) :
Code : JavaScript1 | document.getElementsByTagName('textarea')[1];
|
Mais, à quoi peut bien servir cette méthode ? On ne doit pas utiliser ça tous les jours !
Effectivement ! Cela dit, le tableau retourné peut astucieusement être utilisé avec une boucle, de manière à récupérer des éléments particuliers repérés par exemple par leur attribut
class ; on pourra ainsi appliquer des changements (comme les masquer) uniquement à ces éléments là.
On écrit getElementsByTagName, car on récupère un tableau d'éléments.
Avec getElementById, on récupère un élément unique, donc pas de s.
Compatibilité
Ces deux méthodes font partie du JS depuis sa version 1.5.
Pour situer la chose, sachez qu'elle (cette version) est supportée par les version 5 et supérieures de Internet Explorer : seuls les
très vieux navigateurs seront incompatibles...
Bref, il faut juste savoir que ces méthodes ne sont pas présentes depuis les débuts de JS, mais qu'elles sont arrivées après, et qu'il existe un moyen de savoir si la méthode "getElementById" fonctionne sur le navigateur qui exécute le script.
On effectue pour cela ce test :
Code : JavaScript1
2 | if(!document.getElementById) // si la méthode n'existe pas (le ! indique la négation)
alert("Sympa ta charette...\nVa donc télécharger un vrai navigateur :p");
|
Comprenez ce code ainsi : si
document.getElementById n'est pas défini, alors [...].
Les attributs
Nous n'allons pas étudier tous les attributs de tous les objets, sachez simplement qu'on retrouve presque toujours les mêmes attributs qu'en HTML.
On peut citer les attributs
id (encore lui

) et
className (qui correspond à l'attribut HTML "class").
Ce dernier est l'un des rares attributs dont le nom n'est pas le même qu'en HTML.
La cause : le mot-clé "class" est réservé en JS (on n'a pas le droit de l'utiliser pour des noms de variables ou autres). Donc il a fallu trouver un autre nom, d'où className.
Voici quelques exemples...
Modifier l'adresse d'une image et ses dimensions :
Code : JavaScript1
2
3
4 | monImage = document.getElementsByTagName("img")[0];
monImage.src = "banniere.jpg";
monImage.width = "800";
monImage.height = "200";
|
Afficher la destination d'un lien :
Code : JavaScript1 | alert( document.getElementById("idLien").href );
|
Les évènements
Quelques évènements passe-partout
Voici une liste d'évènements qui s'appliquent à la plupart des objets.
Pour les évènements plus spécifiques, ils seront cités lorsqu'on abordera l'objet en question, dans les chapitres qui suivent.
Rappel : les évènements doivent se noter en minuscule, même si on les écrit onEvent pour plus de lisibilité.
- onClick et onDblClick : lors d'un clic / double clic sur l'élément en question
- onKeyPress : lorsqu'on appuie sur une touche avec cet élément sélectionné
- onKeyDown et onKeyUp : lorsqu'une touche est enfoncée / relâchée avec cet élément sélectionné
- onMouseOver et onMouseOut : lorsque le pointeur de la souris arrive sur l'élément / sort de cet élément
- onMouseMove : lors d'un déplacement de la souris au-dessus de cet élément
- onMouseDown et onMouseUp : lorsque le bouton de la souris est enfoncé / relâché sur cet élément
Leur utilisation
La première façon de déclencher un script lors d'un évènement, c'est d'utiliser l'attribut HTML, comme nous l'avons vu dans l'un des premiers chapitres :
Code : HTML1 | <img src="azerty.png" alt="" onclick="alert('Oui ?');" />
|
Mais il est également possible d'indiquer cet évènement directement en JS.
Voici une image (qu'on va repérer grâce à son id) :
Code : HTML1 | <img src="azerty.png" alt="" id="uneImage" />
|
Et voici le même exemple que ci-dessus, mais directement en JS :
Code : JavaScript1
2
3
4 | document.getElementById("uneImage").onclick = function()
{
alert("Oui ?");
}
|
Ce code JS doit être placé dans la page, après l'image !
S'il se trouve dans l'en-tête de la page, l'image n'aura pas encore été créée lors de son exécution (qui se fait au fil du chargement de la page), et JS ne pourra donc pas lui associer un évènement.
On associe bien une
fonction à l'évènement !
On peut également le faire de cette manière :
Code : JavaScript1
2
3
4
5 | function quoi()
{
alert("Oui ?");
};
document.getElementById("uneImage").onclick = quoi; // on parle de la fonction elle-meme : pas de parentheses
|
En revanche, ceci est
faux :
Code : JavaScript1 | document.getElementById("uneImage").onclick = alert("Oui ?");
|