Adloun

JavaScript : rendre le Web interactif (école d'ingénieur) · Chapitre 7 · Application directe du cours

Un tableau construit par le script

Le DOM : lire et modifier la page · niveau 2

Énoncé

À partir d'un tableau d'objets { titre, auteur, prix }, construire dans l'élément <div id="zone"> un tableau HTML accessible : une ligne d'en-tête (cellules <th scope="col">) dans un <thead>, une ligne par livre dans un <tbody>, prix au format français et alignés à droite. On pourra utiliser les méthodes createTHead, createTBody et insertRow des tableaux.

Corrigé


const livres = [
  { titre: "Programmation Java", auteur: "I. Alame", prix: 32 },
  { titre: "Analyse MPSI", auteur: "J.-M. Monier", prix: 45 },
  { titre: "L’Étranger", auteur: "A. Camus", prix: 7.9 },
];
const euros = new Intl.NumberFormat("fr-FR", { style: "currency", currency: "EUR" });

function cellule(balise, texte) {
  const c = document.createElement(balise);
  c.textContent = texte;
  return c;
}

const table = document.createElement("table");
const entete = table.createTHead().insertRow();
for (const nom of ["Titre", "Auteur", "Prix"]) {
  const th = cellule("th", nom);
  th.scope = "col";
  entete.append(th);
}

const corps = table.createTBody();
for (const { titre, auteur, prix } of livres) {
  const ligne = corps.insertRow();
  const prixCellule = cellule("td", euros.format(prix));
  prixCellule.className = "prix";
  ligne.append(cellule("td", titre), cellule("td", auteur), prixCellule);
}

document.querySelector("#zone").append(table);
console.log(table.rows.length, table.tBodies[0].rows.length);

4 3

Illustration

La petite fonction cellule évite de répéter createElement et textContent. Le tableau est construit entièrement hors de la page, puis inséré en une fois ; table.rows compte la ligne d'en-tête et les trois lignes du corps.

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 →