JavaScript • Page 2 / DOM & événements

Manipuler le DOM & réagir aux clics

Ici tu vas apprendre à : sélectionner des éléments HTML, changer leur contenu avec JS et réagir à un clic sur un bouton.

1. Le DOM, c’est quoi ?

Le DOM (Document Object Model) est la “représentation” du HTML en mémoire. JavaScript peut lire / modifier ce DOM → donc changer la page en direct.

Exemple HTML

<h1 id="titre">Titre original</h1>

Exemple JS

const titre = document.getElementById("titre");
titre.innerText = "Nouveau titre depuis JS";

Vidéo : comprendre le DOM

Le DOM représente…

2. Sélectionner un élément (querySelector)

Pour récupérer un élément, tu peux utiliser :

// HTML
// <p id="message">Texte de base</p>

// JS
const message = document.querySelector("#message");
message.innerText = "Texte modifié !";
querySelector fonctionne comme en CSS : "#id", ".classe", "p span", etc.

Quel sélecteur utiliser pour cibler un élément avec id="score" ?

3. Modifier le contenu et le style

Texte & HTML

const titre = document.querySelector("h1");

titre.innerText = "Titre simple";   // texte brut
titre.innerHTML = "Titre <em>stylé</em>";

Style

const box = document.querySelector(".box");

box.style.backgroundColor = "#4f8bff";
box.style.color = "white";
box.style.borderRadius = "12px";

Quelle propriété change le texte d’un élément sans interpréter de HTML ?

4. Réagir à un clic (addEventListener)

Tu peux dire à un élément : “Quand on clique sur toi, exécute cette fonction”.

// HTML
// <button id="btn">Clique-moi</button>

// JS
const btn = document.querySelector("#btn");

btn.addEventListener("click", function () {
  console.log("Bouton cliqué !");
});

Quand l’utilisateur clique, la fonction anonyme est exécutée. Tu peux aussi définir une fonction à part :

function direBonjour() {
  console.log("Bonjour !");
}

btn.addEventListener("click", direBonjour);

Quel événement utilise-t-on pour détecter un clic sur un bouton ?

5. Mini labo : compteur de clics

Exemple typique : un compteur qui augmente quand on clique, avec un bouton pour remettre à zéro.

HTML

<div class="counter-box">
  <button id="moins" class="counter-btn secondary">-</button>
  <span id="valeur" class="counter-value">0</span>
  <button id="plus" class="counter-btn">+</button>
  <button id="reset" class="counter-btn secondary">Reset</button>
</div>

JS

let compteur = 0;

const span = document.querySelector("#valeur");
const btnPlus = document.querySelector("#plus");
const btnMoins = document.querySelector("#moins");
const btnReset = document.querySelector("#reset");

function majAffichage() {
  span.innerText = compteur;
}

btnPlus.addEventListener("click", () => {
  compteur++;
  majAffichage();
});

btnMoins.addEventListener("click", () => {
  compteur--;
  majAffichage();
});

btnReset.addEventListener("click", () => {
  compteur = 0;
  majAffichage();
});

Tu as une version simplifiée ci-dessous directement dans la page :

0

Question : que fait la fonction majAffichage() dans ce code ? (explique vite fait)

6. Mini-projet : bouton qui change le texte & la couleur

Crée une page interaction.html + un fichier interaction.js avec :

Dans ton JS, fais en sorte que :

// Piste JS
const titre = document.querySelector("#titre-js");
const texte = document.querySelector("#texte-js");
const btn = document.querySelector("#btn-change");

// TODO : ajouter un addEventListener("click", ...) ici
Tu viens de voir la base de tout site interactif : sélectionner un élément → écouter un événement → modifier le DOM.