Adloun

JavaScript : rendre le Web interactif (école d'ingénieur) · Chapitre 7 · Exercice de TD

Des badges « Nouveauté »

Le DOM : lire et modifier la page · niveau 1 (application)

Énoncé

Une liste de cartes contient des titres <h2>. Ajouter à chaque titre figurant dans un ensemble de nouveautés un <span class="badge">Nouveauté</span>. Que vaut ensuite le textContent du premier titre, et pourquoi faudrait-il en tenir compte avant de comparer des titres ?

Corrigé


const nouveautes = new Set(["Programmation Java", "Analyse MPSI"]);

for (const h2 of document.querySelectorAll("#cartes h2")) {
  if (nouveautes.has(h2.textContent)) {
    const badge = document.createElement("span");
    badge.className = "badge";
    badge.textContent = "Nouveauté";
    h2.append(badge);
  }
}
console.log(document.querySelectorAll(".badge").length);
console.log(document.querySelector("#cartes h2").textContent);

2
Programmation JavaNouveauté

textContent concatène les textes de tous les descendants : le badge fait désormais partie du « titre ». Un code qui comparerait ensuite ce texte au titre du livre ne le trouverait plus. D'où l'intérêt de garder l'identité d'une carte dans un attribut (dataset.isbn) plutôt que dans son texte.

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →