====== Accès au DOM ====== **DOM :** Document Object Model -- représentation en mémoire de la page html. ===== Identifier un élément du DOM ===== Prenons une page simple comme : JS dans les balises

Blabla, un peu de texte ici.

Et encore du texte là...

Un titre contenu dans un bloc standard div

un texte dans le même bloc.

Un texte avec du gras et un bloc en ligne standard

En plus des noms des balises html, vous remarquez quelques éléments permettant d'identifier tel ou tel bloc : * ''id'' : on ajoute un identifiant à une balise. L'identifiant doit être unique.\\ //Exemples en lignes 11, 18 et 19// * ''name'' : très proche de ''id''. On utilise ''name '' dans les formulaires.\\ //Exemple ici en ligne 22.// Dans ce cas, //input// permet à l'utilisateur d'écrire quelque chose. Ce quelque chose sera identifié par le nom -- //name// -- "profession" qui est la valeur associée à ''name''. * ''class'' : La classe est utilisée pour spécifier un élément de mise en forme CSS. Mais on peut exploiter cet attribut pour identifier une balise particulière. Il arrive sur internet que l'on attribue une classe qui ne correspond à aucune mise en forme et qui ne sert qu'à identifier certains éléments de la page.\\ //Exemple en lignes 9 et 17// ===== Parcourir le DOM ===== * Le code javascript accède à une variable ''document'' qui représente la racine du DOM. * On peut également atteindre directement ''document.body'' qui représente la partie ''%%%%'' de la page. * On peut parcourir les éléments contenus dans ''body'' grâce à une boucle : for (let item of document.body.children) { // la boucle se répète en parcourant les nœuds // enfants de document.body. À chaque boucle, // item est un nœud enfant de document.body } Cette méthode est possible mais peu efficace : le DOM est plein d'éléments qui ne nous servent pas. Si on saute une ligne dans le document html, ce saut de ligne n'apparaît pas dans la page mais on aura un enfant de plus dans le DOM... ===== Atteindre directement un élément ===== La méthode native la plus efficace est d'atteindre un élément par son id. let node_ul = document.getElementById("liste"); // node_ul représente maintenant le nœud