[[web:accueilweb|{{ :iconemaison.jpg?nolink&25|Sommaire Web}}]] ===== JavaScript et jQuery - Sélection et décoration des éléments du DOM ===== [Mise à jour le 1/4/2026] \\ === Prérequis === - Algorithmique (affectation, tests, boucles) \\ - Base de HTML, de CSS et de JavaScript (jQuery). \\ Télécharger ici le dossier contenant les exercices proposés dans ce document. Ouvrez-le dans VSCode. ==== 1. Présentation ==== La bibliothèque **jQuery**((jQuery- Simplifiez et enrichissez vos développements JavaScript - Pearson - J. Chaffer)) se fonde sur la puissance des [[..:basescss|sélecteurs CSS]]((Les sélecteurs CSS permettent de cibler des éléments HTML auxquels appliquer des styles.)) pour que nous puissions accéder rapidement t facilement ou à des groupes d'éléments du [[..:javascript:avance:dom|DOM]]((Le DOM est la représentation en mémoire d'une page HTML sous forme d'arbre d'objets manipulables par JavaScript.)). \\ === 1.1 La fonction $() === Quel que soit le type de **sélecteur** que nous voulons employer dans jQuery, l'instruction débute toujours par la fonction **$()**. Cette fonction prend généralement en seul paramètre un sélecteur CSS et retourne un nouvel objet jQuery qui pointe sur les éléments correspondant dans la page. //Utilisation des trois sélecteurs de base// ^ Sélecteur ^ CSS ^ jQuery ^ Description ^ | Nom de balise | p { } | $('p') | Sélectionne tous les paragraphes du document. | | Identifiant | #un-id { } | $('#un-id') | Sélectionne l'élément unique du document dont l'identifiant est //un-id//. | | Classe | .une-classe { } | $('.une-classe') | Sélectionne tous les éléments du document ayant //une-classe// comme nom de classe. | \\ === 1.2 La méthode .html de la bibliothèque jQuery === La méthode **.html()** permet de lire ou modifier le contenu HTML d'un élément. {{ :web:jquery:htmlnoir.png?nolink|}} * //Exemple - Affichage d'un texte (à tester dans **ex1.html**)//
// A placer dans ex1.html let data = 12; // création d'une variable data $("#val1").html("Température = " + data + "°C"); // $() sélectionne le bloc val1 et le rempli avec la valeur 12 \\ === 1.3 La méthode .css de la bibliothèque jQuery === La méthode **.css** applique une **déclaration de style** sur l'élément sélectionné. {{ :web:jquery:htmlnoir.png?nolink|}} * //Exemple 1 - Changer la couleur d'un texte (compléter ex1.html)// :
let data = 12; $("#val1").html("Température = " + data + "°C"); // $() sélectionne le bloc val1 et le rempli avec la valeur 12 // A placer dans ex1.html $("#val1").css('color','red'); // la valeur 12 est réécrite en rouge * //Exemple 2 - Changer la couleur d'un bloc (à tester dans ex2.html)// : {{ :web:jquery:css1.png?nolink&100|}}
Cel_a
A cliquer
/* A placer dans ex2.html */ /* Propriétés graphiques du bloc cel_a */ #cel_a{ width: 100px; height: 100px; background-color: grey; float: left; margin: 10px; } /* A placer dans ex2.html */ $('#cel_a').click(function () { $('#cel_a').css('background-color', 'yellow'); }); // La couleur du bloc cel_a passe de gris à jaune \\ === 1.4 La méthode .addClass de la bibliothèque jQuery === Ajoute une **classe CSS** à l'élément, dont les styles sont définis dans une feuille de style externe. * //Exemple - Afficher un bloc de couleur (à tester dans ex3.html)// : {{ :web:jquery:css2.png?nolink&200|}}
Cel_b
/* A placer dans ex3.html */ /* Propriétés graphiques du bloc cel_b */ .cel_b{ /* classe */ width: 100px; height: 100px; background-color: grey; float: left; margin: 10px; } /* A placer dans ex3.html */ $("#cel_b").addClass('cel_b') // Affichage du bloc cel_b en gris \\ ==== 2. Applications ==== === 2.1 Changer la couleur d'un bloc en fonction d'un entier N === * **Algorithme partiel proposé** var N : entier début Lire(N) si N < const0 alors changer_couleur_bloc sinon si const0 <= N < val1 alors changer_couleur_bloc sinon si val1 <= N < val2 changer_couleur_bloc ... ... sinon si valn-1 <= N < valn changer_couleur_bloc sinon changer_couleur_bloc fin si fin **A coder** dans le fichier **ex4.html** \\ === 2.1 Changer la couleur de n blocs en fonction d'une liste d'entier Ni === * **Algorithme partiel proposé** Algoithme Changer_Couleur_nN var tab = [N0,N1,..., Nn-1, Nn] # liste des valeurs de N début Pour i de 0 à n faire si Tab[i] < const0 alors changer_couleur_bloci sinon si const0 <= Tab[i] < const1 alors changer_couleur_bloci sinon si const1 <= Tab[i] < const2 changer_couleur_bloci ... ... sinon si constn-1 <= Tab[i] < constn changer_couleur_bloci sinon changer_couleur_bloci fin si fin pour fin **A coder** dans le fichier **ex5.html**