Exercices DOM
Open Source Your Knowledge, Become a Contributor
Technology knowledge has to be shared and made accessible for free. Join the movement.
Exercice 5
Suite à un oubli de la part du créateur de l'exercice plusieurs erreurs n'ont pas été corrigés sur la page.
Il en revient à vous pour corriger les erreurs qui y sont glissés.
Remarque : Le fichier index.html
est en lecture seule et n'est affiché qu'à titre indicatif. Vous ne pouvez agir sur ce fichier qu'en javascript.
Les exercices 5, 6, 7, 8 sont les mêmes que les exercices 1, 2, 3, 4. Sauf qu'au lieu d'utiliser les fonctions de selections natifs, nous utiliserons les fonctionnalités de D3
- Selectionnez le titre et modifiez son contenu en
Rick Astley - Never Gonna Give You Up
en utilisantd3.select
.- Sélectionnez tous les éléments possèdant la classe
couplet
et supprimer la première ligne qui est en double.
N'oubliez pas de supprimer le<br />
qui cause le retour à la ligne- Le refrain s'est dupliqué à cause de l'écho. Supprimez les occurences en double.
N'oubliez pas de supprimer le<br />
qui cause le retour à la ligne- Maintenant que toutes les erreurs ont été corrigées, supprimer l'élément ayant pour id
erreur
- Ajoutez en bas de la page (dernier element de
<body>
), un<footer>
contenant© Copyright 2020 - Nom
Conseils
- d3 suit une logique differente que celle de la manipulation de DOM en natif. Inspirez vous des commentaires dans l'
index.js
- Utilisez
d3.select("balise")
pour sélectionner un element. - Utilisez
d3.select("#un_id")
ref pour récuperer un élément ayant pour idun_id
. - Pour sélectionner tous les éléments qui possèdent une classe, utilisez
d3.selectAll(".nom_classe")
ref Attention, ces fonctions retournent un tableau. - Dans le cas où vous n'arrivez pas effectuer une operation avec d3, vous pouvez récuperer l'
Element
d'un objet d3 "selection
" en utilisantselection.node()
ref - Utilisez
selection.remove()
ref pour supprimer les elements sélectionnés. - Faites attention lorsque vous modifiez les elements d'une liste lors de son parcours.
- Utilisez
selection.append(enfant)
ref pour créer un element et l'ajouter à la selection.
Attention, appendChild n'accepte que desNode
. Il faut donc les créer, ce qui peut se faire avecd3.create()
ref pour créer unElement
etdocument.createTextNode("un texte")
ref pour créer un noeud de typeText
contenantun texte
.
Lors de l'éxecution, il peux vous afficher une erreur, re-executer à nouveau regle généralement le problème.
Exercice 5
Open Source Your Knowledge: become a Contributor and help others learn. Create New Content
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// 1
// on selectionne un element, on ajoute text
// d3.select('element').text('text');
// 2
// on selectionne tous les objets de la classe "une-classe"
d3.selectAll('.une-classe').each(function () {
// on applique cette operation pour chacun d'entre eux
// "this" correspond à l'élement selectionné. par exemple: <p>
console.log(this);
// le but est de supprimer les deux premiers noeuds
// indice : "this.firstChild" ou "this.childNodes[0]"
// ps, n'oubliez pas le <br> en trop
// pour supprimer un objet:
//d3.select(objet).remove();
});
// 3
// on selectionne tous elements de une-classe
d3.selectAll('.une-classe').each(function () {
// pour chacun d'entre eux on sélectionne leur noeuds enfant
d3.selectAll(A_COMPLETER)
// on filtre les noeuds sélectionnés pour ne garder que les doublons
.filter((_d, i) => Math.floor(i / 2) % 2 === 0)
// on les supprime
.remove();
});
// 4
Enter to Rename, Shift+Enter to Preview
1
<!DOCTYPE html>
Enter to Rename, Shift+Enter to Preview