JS (2/5) — Manipulation du DOM
Last updated
Was this helpful?
Last updated
Was this helpful?
Apprendre à requêter le DOM et récupérer ses éléments
Ajouter, supprimer et modifier de nouveaux objets dans le DOM
Le DOM, pour Document Object Model, est une API (Application Programming Interface) qui permet d'accéder et de modifier les éléments d'une page HTML.
Comme vous pouvez le constater, il s'agit d'un arbre, que l'on nomme le DOM tree. Il y a donc une notion de descendant (child), d'ascendant (parent), etc...
Tous ces éléments sont accessibles via JavaScript. Par exemple document.body
fait référence à la balise HTML <body>
ainsi que tout son contenu. Il est même possible d'accéder aux propriétés CSS de votre noeud (via .style
).
À partir de là, si vous savez récupérer un élément spécifique dans le DOM, vous pouvez dynamiquement modifier votre page.
Créer une page HTML simple, et un script qui change le background du document en rouge (.style.background = "red"
) dès que la page est prête. Ça ne fonctionne pas ? Lever la main (il y a un petit piège ;)
Soit la page HTML suivante :
Créer et afficher cette page ;
Créer un script qui changer le background des p
qui sont de la classe descr
uniquement.
Vous pouvez stocker un noeud dans une variable, et accéder à ses noeuds enfants ! Pour cela, vous pouvez faire par exemple:
En récupérant le caroussel, changer le background du premier paragraphe.
Une manière pour faire croire à l'utilisateur qu'on l'on a supprimé des éléments sur une page consiste simplement à les masquer grâce à du CSS: ils restent cependant présent dans le DOM et peuvent être démasqués à tout moment.
N'hésitez pas à jouer avec cet exemple. Vous pouvez ajouter des éléments à un DOM, les modifier et aussi les supprimer. Vous verrez ça dans le prochain exercice.
Dans cet exercice, supposons que vous êtes administrateur ou modérateur, et que le serveur vous ait retourné la liste des commentaires ajouté à un média spécifique de la plateforme, qui est comme cela :
Une partie de votre rôle est de pouvoir modifier et supprimer des commentaires, et pourquoi pas en rajouter de nouveaux. En partant du code script ci-dessous (la gestion des events sera fait dans les prochains chapitres), réaliser les exercices suivants :
Appropriez vous le code source, notamment la disponibilité/exécution ;
Implémentez le comportement de suppression : lorsque vous cliquerez sur le bouton "Remove Comment", vous supprimerez la div user
correspondante.
Implémentez un comportement de modification : lorsque vous cliquerez sur le bouton "Modify Comment", vous modifierez le contenu du commentaire (pour le moment, vous pouvez simplement remplacer le contenu par une simple chaine de caractère prédéfini, e.g. "Chaîne modifiée!!", le temps que l'on aborde les formulaires)
Implémentez le comportement d'ajout : lorsque vous cliquerez sur le bouton "Add new Comment", vous ajouterez un nouveau bloc commentaire. Vous utiliserez innerHTML
pour cela.
Vous avez dû remarquer que chaque bloc commentaire possède un id -- qui doit être unique sur la page ! Modifiez votre fonction add pour être sûr que le nouveau bloc commentaire est unique dans la page ! (Astuce : récupérer le dernier élément grâce à myelement.lastChild;
)