Dom Javascript
Dom Javascript
1. Sélection par ID
Exemple :
element.style.color = "red";
element.style.fontSize = "20px";
element.classList.add("nouvelleClasse");
element.classList.remove("ancienneClasse");
En JavaScript, vous pouvez facilement sélectionner les parents et les enfants d'un élément
DOM grâce à des propriétés et des méthodes intégrées.
Propriété parentElement
Propriété children
• Renvoie tous les enfants directs d'un élément (sous forme d'une collec>on HTML).
• Vous pouvez u>liser un sélecteur CSS pour sélec>onner les enfants avec des critères
spécifiques.
console.log(premierEnfant);
console.log(dernierEnfant);
3. Naviguer entre les Frères et Sœurs
Propriété nextElementSibling
Propriété previousElementSibling
<div class="parent">
<p class="enfant">Enfant 1</p>
<p class="enfant">Enfant 2</p>
<p class="enfant">Enfant 3</p>
</div>
Si vous souhaitez filtrer les enfants selon une condition, vous pouvez utiliser Array.from()
pour transformer une collection HTML en tableau :
• Définition : Renvoie ou définit le contenu textuel d'un élément, y compris les espaces
et les retours à la ligne. Cela inclut tout le texte dans les nœuds enfants, même s'ils
sont cachés par des styles CSS.
• Caractéristiques :
o Récupère tout le texte, qu'il soit visible ou non.
o Ne prend pas en compte le style (ex : display: none).
o Évite de traiter du HTML : uniquement du texte brut.
• Usage :
• <div id="element">
• <p>Bonjour <span>monde</span>!</p>
• </div>
• const element = document.getElementById("element");
• console.log(element.textContent); // "Bonjour monde!"
Modification :
• Définition : Renvoie ou définit le contenu textuel d'un élément visible à l'écran, c'est-
à-dire le texte visible après application des styles CSS (comme display: none ou
visibility: hidden).
• Caractéristiques :
o Ne récupère que le texte visible.
o Respecte les styles CSS affectant la visibilité ou l'affichage.
o La mise en page visuelle affecte également la sor>e (par ex., suppression des
espaces inu>les ou ajout de sauts de ligne visuels).
• Usage :
• <div id="element" style="display: none;">
• <p>Bonjour <span>monde</span>!</p>
• </div>
• const element = document.getElementById("element");
• console.log(element.innerText); // ""
• element.style.display = "block";
• console.log(element.innerText); // "Bonjour monde!"
Modification :
Modification :
console.log("textContent:", element.textContent);
// "Texte caché Texte visible"
console.log("innerText:", element.innerText);
// "Texte visible" (car "Texte caché" est masqué)
console.log("innerHTML:", element.innerHTML);
// "<p style="display: none;">Texte caché</p><p>Texte visible</p>"
En JavaScript, vous pouvez manipuler les attributs des éléments HTML à l'aide de plusieurs
méthodes et propriétés intégrées. Voici un guide complet pour les manipuler :
1. Accéder à un ALribut
Propriété Directe
Si l'attribut a une propriété correspondante (comme id, class, href, etc.), vous pouvez y
accéder directement :
Pour accéder à n'importe quel attribut, même s'il n'a pas de propriété directe :
Propriété Directe
const element = document.querySelector("#monElement");
element.id = "nouvelId"; // Modifier l'attribut "id"
element.className = "nouvelleClasse"; // Modifier l'attribut "class"
Méthode setAttribute
Les attributs personnalisés qui commencent par data- sont couramment utilisés pour stocker
des données.
// Avec getAttribute
console.log(element.getAttribute("data-info"));
// Avec dataset
console.log(element.dataset.info);
// Avec setAttribute
element.setAttribute("data-info", "nouvelleValeur");
// Avec dataset
element.dataset.info = "nouvelleValeur";
Exemple de manipulation :
const image = document.getElementById("image");
// Supprimer un attribut
image.removeAttribute("data-category");
// Vérifier un attribut
if (image.hasAttribute("alt")) {
console.log("L'image a une description !");
}
7. Ajouter des Classes avec les ALributs
JavaScript :
const bouton = document.getElementById("changerImage");
const image = document.getElementById("image");
bouton.addEventListener("click", () => {
// Changer l'image
const nouvelleSrc = image.getAttribute("src") === "photo1.jpg"
? "photo2.jpg"
: "photo1.jpg";
image.setAttribute("src", nouvelleSrc);
En JavaScript, les template literals (ou littéraux de gabarit) permettent de créer facilement du
contenu dynamique grâce à leur syntaxe basée sur les backticks (``). Ils facilitent l'insertion de
variables, de valeurs dynamiques, et même la création de contenu HTML.
Exemple de Base
const nom = "Alice";
const age = 25;
const message = `Bonjour, je m'appelle ${nom} et j'ai ${age} ans.`;
console.log(message);
// Résultat : Bonjour, je m'appelle Alice et j'ai 25 ans.
2. Créer du Contenu HTML Dynamique
Les template literals sont parfaits pour générer du contenu HTML à la volée.
const article = `
<article>
<h1>${titre}</h1>
<p>Écrit par : ${auteur}</p>
<div>${contenu}</div>
</article>
`;
console.log(article);
// Insérer dans le DOM
document.body.innerHTML = article;
3. Boucles et Contenu Répété
Les template literals fonctionnent très bien avec des boucles pour générer des listes ou des
éléments répétés.
const liste = `
<ul>
${items.map(item => `<li>${item}</li>`).join("")}
</ul>
`;
console.log(liste);
// Insérer dans le DOM
document.body.innerHTML = liste;
4. U)lisa)on d'Expressions Dynamiques
Vous pouvez intégrer des expressions JavaScript directement dans les templates.
const facture = `
<p>Prix unitaire : ${prixUnitaire}€</p>
<p>Quantité : ${quantite}</p>
<p>Total : ${prixUnitaire * quantite}€</p>
`;
console.log(facture);
// Insérer dans le DOM
document.body.innerHTML = facture;
5. Fonc)ons et Template Literals
Les template literals peuvent appeler des fonctions pour générer des contenus plus complexes.
console.log(message);
// Insérer dans le DOM
document.body.innerHTML = message;
6. Mul)lignes Sans Concaténa)on
Avec les template literals, il n'est pas nécessaire de concaténer les chaînes pour gérer les sauts
de ligne.
Exemple :
const message = `
<h1>Bienvenue !</h1>
<p>Ceci est un texte sur plusieurs lignes.</p>
<p>Aucun besoin de concaténation avec "+" ou "\\n".</p>
`;
console.log(message);
// Insérer dans le DOM
document.body.innerHTML = message;
7. Inclure des ALributs Dynamiques
Vous pouvez aussi insérer des valeurs dans les attributs HTML.
Exemple :
const imageUrl = "https://via.placeholder.com/150";
const altText = "Une image exemple";
const largeur = 150;
const hauteur = 150;
const imageHTML = `
<img src="${imageUrl}" alt="${altText}" width="${largeur}"
height="${hauteur}" />
`;
console.log(imageHTML);
// Insérer dans le DOM
document.body.innerHTML = imageHTML;
8. Exemple Avancé : Table Dynamique
HTML :
<div id="conteneur"></div>
JavaScript :
const produits = [
{ nom: "Téléphone", prix: 599 },
{ nom: "Ordinateur", prix: 1299 },
{ nom: "Casque Audio", prix: 199 },
];
const tableau = `
<table border="1">
<thead>
<tr>
<th>Produit</th>
<th>Prix (€)</th>
</tr>
</thead>
<tbody>
${produits.map(produit => `
<tr>
<td>${produit.nom}</td>
<td>${produit.prix}</td>
</tr>
`).join("")}
</tbody>
</table>
`;
document.getElementById("conteneur").innerHTML = tableau;
9. Sécurité : Éviter les ALaques XSS
Lorsque vous insérez du contenu dynamique dans le DOM avec innerHTML, faites attention à
ne pas inclure de données non fiables (ex : données utilisateur). Une bonne pratique est
d'utiliser textContent pour éviter les attaques XSS.
Les template literals rendent le code plus lisible et simplifient la manipulation de contenu
HTML dynamique. Si vous avez un cas particulier ou besoin d'un exemple précis, n'hésitez
pas à demander ! 😊