-
Notifications
You must be signed in to change notification settings - Fork 0
/
pieces.js
47 lines (42 loc) · 1.87 KB
/
pieces.js
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// Récupération des pièces depuis le fichier JSON
const pieces = await fetch("joueuses.json").then(pieces => pieces.json());
// Fonction qui génère toute la page web
function genererPieces(pieces) {
for (let i = 0; i < pieces.length; i++) {
// Création d’une balise dédiée à une pièce auto
const pieceElement = document.createElement("article");
// On crée l’élément img.
const imageElement = document.createElement("img");
// On accède à l’indice i de la liste pieces pour configurer la source de l’image.
imageElement.src = pieces[i].image;
// On rattache l’image à pieceElement (la balise article)
pieceElement.appendChild(imageElement);
// Idem pour le nom, le prix et la catégorie ...
// ...
// On rattache la balise article au body
document.body.appendChild(pieceElement);
}
}
// Premier affichage de la page
genererPieces(pieces);
// Ajout du listener pour trier les pièces par ordre de prix croissant
const boutonTrier = document.querySelector(".btn-trier");
boutonTrier.addEventListener("click", function () {
piecesOrdonnees = Array.from(pieces)
piecesOrdonnees.sort(function (a, b) {
return b.prix - a.prix;
});
// Effacement de l'écran et regénération de la page
document.querySelector(".fiches").innerHTML = "";
genererPieces(pieces);
});
// Ajout du listener pour filtrer les pièces non abordables
const boutonFiltrer = document.querySelector(".btn-filtrer");
boutonFiltrer.addEventListener("click", function () {
const piecesFiltrees = pieces.filter(function (piece) {
return piece.disponibilite;
});
// Effacement de l'écran et regénération de la page avec les pièces filtrées uniquement
document.querySelector(".fiches").innerHTML = "";
genererPieces(piecesFiltrees);
});