Pages

See the Pen querySelector by dupont (@dupontcodepen) on CodePen.


const students = document.querySelectorAll("p");

let sum = 0;
let count = 0;

for (const student of students) {
  const mark = Number(student.dataset.mark);

  if (!isNaN(mark)) {
    sum += mark;
    count++;
  }
}

const average = count > 0 ? (value / count).toFixed(2) : "0.00";

// utilisez le bon selector

const elements = document.querySelectorAll("[data-mark]");

let sum = 0;
let count = 0;

for (const el of elements) {
  const mark = Number(el.dataset.mark);

  if (!isNaN(mark)) {
    sum += mark;
    count++;
  }
}

const average = count
  ? (sum / count).toFixed(2)
  : "Aucune note";

// utilisation des méthodes en L2

const marks = [...document.querySelectorAll("[data-mark]")]
  .map(p => Number(p.dataset.mark));

const average =
  marks.length ? (marks.reduce((a, b) => a + b) / marks.length).toFixed(2) : "Aucune note";

Décomposition !

TD DOM

TD de base


Parcours de l'arbre : help

DOM : Start coding !

 

DOM de base

Fonctions de base à tester dans la console de http://dupontcours.free.fr/JavaScript/DOM-javascript/dom.html


🆒Sélectionnez tous les paragraphes

  1. const paragraphes = document.querySelectorAll("p");

Comptez le nombre de paragraphes

  1. const  paragraphes = document.querySelectorAll("p");
  2. console.log( paragraphes.length)

Une boucle sur la selection des paragraphes

  1. const  paragraphes = document.querySelectorAll("p");
  2. for (let p of  paragraphes) {
  3.         console.log(p.innerText.split(" ").length); // count words
  4. }

      1️⃣Ajouter une classe à tous les paragraphes

      1. const  paragraphes = document.querySelectorAll("p");
      2. for (let p of  paragraphes) {
      3.     p.classList.add("second");
      4. }

      🪛Ajoutez un événement click (voir amélioration par délégation)

      1. const paragraphes = document.querySelectorAll("p");
      2. for (let p of paragraphes ) {
      3.   p.addEventListener("click", () => {
      4.     p.classList.toggle("second");
      5.   });
      6. }

      🥇La délégation 

      1. const fun = function (event) {
      2.   const targetElement = event.target; // p or em

      3.   if (targetElement.closest("p")) {
      4.     let para = targetElement.closest("p");
      5.     para.classList.toggle("second");
      6.   }
      7. };

      8. const parent = document.querySelector("body");
      9. parent.addEventListener("click", fun, false);
      🥷Autres exemples de code à tester sur codePen.
      Somme des valeurs contenu dans l'attribut data-code
      1. let value = 0;
      2. for (let para of articles) {
      3.   value+= parseInt(para.dataset.code) // parseInt transforme la valeur en entier !
      4. }
      5. console.log(value)

      Affichez le résultat dans un div.
      1. let value = 0;
      2. for (let para of articles) {
      3.   value+= parseInt(para.dataset.code) // parseInt transforme la valeur en entier !
      4. }
      5. document.querySelector("div").innerText = value


      🔜 Pour la moyenne ! 
      1. const students = document.querySelectorAll("[data-mark]");

      2. const total = [...students].reduce(
      3.   (sum, el) => sum + Number(el.dataset.mark),
      4.   0
      5. );

      6. const average = (total / students.length).toFixed(2);

      7. document.querySelector(".msg").textContent += average;

      🥷🏿parcours

       Parcours à la recherche de texte !


      Rechercher un mot dans une page !

       en action !

      Afficher le DOM dans une page

      Remarque :

      Code avec expReg : en action

      Parcours DOM

       

        https://dupontdenis.github.io/AnimDOM/