Aller au contenu
M05 · E. Manipuler jQuery

Découvrir jQuery

Intégrer la bibliothèque jQuery, sélectionner et modifier des éléments avec $(), enchaîner les méthodes, gérer les événements et les liens, ajouter des effets et utiliser des plugins existants.

1Situer

Vous rejoignez une agence web de Rabat qui maintient le site d'une chaîne d'hôtels, écrit il y a quelques années avec jQuery. Des millions de sites l'utilisent encore. Il faut savoir lire et modifier ce code : sélectionner, cacher, afficher, réagir aux clics, en moins de lignes qu'en JavaScript pur.

2Comprendre

La même action en JavaScript pur et en jQuery
JAVASCRIPT PUR JQUERY document.querySelectorAll('.chambre') $('.chambre') ….forEach((el) =>   el.classList.add('dispo')); .addClass('dispo') btn.addEventListener('click',   () => { … }); $('#voir').on('click', …) $('#titre').text('Atlas')   .addClass('grand').fadeIn(); 3 instructions séparées

À gauche, JavaScript « pur » ; à droite, jQuery. Le résultat dans la page est le même.

1 / 5

jQuery (2006) est une bibliothèque JavaScript qui simplifie la manipulation de la page, les événements, les effets et AJAX. Les navigateurs modernes font aujourd’hui presque tout en JavaScript pur, mais jQuery reste très présent dans les sites existants et les thèmes (WordPress, Bootstrap 4).

Intégrer jQuery

<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>  <!-- 1. la bibliothèque -->
<script src="js/script.js"></script>                                  <!-- 2. votre code -->
$(function () {
  // le DOM est prêt : on peut sélectionner les éléments
});

Les fonctions essentielles

jQueryRôle
$('sélecteur CSS')sélectionner
.text(), .html(), .val()lire ou modifier le texte, le HTML, la valeur d’un champ
.attr('href', '...'), .data('prix')attributs, attributs data-
.addClass(), .removeClass(), .toggleClass()classes
.css('color', 'red')style
.append(), .prepend(), .remove()ajouter, supprimer
.hide(), .show(), .fadeIn(), .slideToggle()effets
.each(function () { ... })parcourir

Sans argument, une méthode lit ($('#titre').text()) ; avec un argument, elle modifie.

Le chaînage

Chaque méthode renvoie l’objet jQuery : on peut enchaîner.

$('#titre').text('Bienvenue').addClass('grand').fadeIn(400);

Les événements

$('#voir').on('click', function () {
  $('#chambres').slideToggle();
});
$('.chambre').on('click', function () {
  $('.chambre').removeClass('selection');
  $(this).addClass('selection');            // this : l'élément cliqué
  $('#choix').text(`Prix : ${$(this).data('prix')} DH`);
});
$('a.externe').on('click', function (e) { e.preventDefault(); });  // comportement des liens
$('#voir').trigger('click');                                        // déclencher un événement

Les plugins

Un plugin ajoute une méthode à jQuery (carrousel, calendrier, validation de formulaire…). On charge jQuery, puis le plugin, puis on l’active : $('.galerie').monPlugin({ vitesse: 500 }).

Exemple simple

La télécommande universelle

Plutôt qu'une télécommande par appareil, une seule télécommande avec des boutons simples. jQuery donne une seule fonction, $(), et des méthodes courtes qui marchent sur tous les navigateurs.

// JavaScript pur
document.querySelectorAll('.chambre').forEach((el) => el.classList.add('dispo'));
// jQuery
$('.chambre').addClass('dispo');
Exemple simple

La phrase enchaînée

« Prends le titre, colore-le en rouge, puis fais-le apparaître doucement » : avec jQuery, on enchaîne les actions sur une seule ligne (chaînage).

$('#titre').css('color', '#c0392b').hide().fadeIn(600);

3Manipuler

jQuery est déjà chargé dans ce bac à sable. Complétez le script avec la syntaxe jQuery, puis testez dans l'aperçu.
Ouvrir dans le lab ↗
Console
  • Changez le texte du titre avec .text() pour y ajouter « ★★★★ »
  • Au clic sur #voir, la liste s'affiche (slideToggle ou show) : cliquez pour tester
  • Au clic sur une chambre, ajoutez-lui la classe selection (et retirez-la des autres)
  • Affichez dans #choix « Prix : 900 DH » quand on clique la chambre double ($(this).data('prix'))

4Pratiquer

Exercice 1 · Traduire en jQuery

Traduisez en jQuery : document.querySelector('#msg').textContent = 'Réservé'; document.querySelector('#msg').classList.add('ok');

Voir le corrigé
$('#msg').text('Réservé').addClass('ok');

Exercice 2 · Les liens

Tous les liens externes (href commence par http) doivent s'ouvrir dans un nouvel onglet. Écrivez le code jQuery.

Voir le corrigé
$('a[href^="http"]').attr('target', '_blank').attr('rel', 'noopener');

Exercice 3 · Utiliser un plugin

Quelles sont les étapes pour utiliser un plugin jQuery existant (par exemple un carrousel) ?

Voir le corrigé
1. Charger jQuery d'abord, puis le fichier JS du plugin (et son CSS)
2. Écrire le HTML attendu par le plugin (voir sa documentation)
3. L'activer sur les éléments : $('.carrousel').nomDuPlugin({ options });
4. Vérifier la licence, la date de dernière mise à jour et la compatibilité
   avec la version de jQuery.

5Vérifier

1. Que fait $('.chambre') ?
2. À quoi sert $(function () { ... }) ?
3. Pourquoi jQuery doit-il être chargé avant votre script ?