jQuery est un framework JavaScript libre lancé en janvier 2006 par John Resig.

Installation

modifier

Typiquement, il faut l'inclure depuis son site ou en le tĂ©lĂ©chargeant :

<script src="https://code.jquery.com/jquery-3.6.3.min.js"></script>

Pour vĂ©rifier la version installĂ©e ensuite, taper dans la console du navigateur (F12) :

console.log(jQuery().jquery);

Utilisation

modifier

Recherches

modifier

Afin de raccourcir la syntaxe au maximum, en jQuery le dollar ($) est un alias de la fonction jQuery() servant Ă  rechercher dans le DOM un nƓud correspondant au sĂ©lecteur en paramĂštre.

 c'est Ă©quivalent au JS document.querySelectorAll() mais qui renvoie un objet jQuery.

Par exemple, entrer le sélecteur $('.data') dans la console du navigateur affiche un objet avec les éléments de la page au format jQuery.

Autre exemple pour rechercher par attribut de donnĂ©es : $('*[data-my-attribute-id="' + attribute_id + '"]').


Pour Ă©viter des recherches absolues dans toute la page, on peut aussi lancer des recherches relatives Ă  un nƓud. Ceci est appelĂ© le "traversing"[1], et jQuery propose les mĂ©thodes ci-dessous pour ce faire :

.find()

modifier

Cherche tous les enfants de l'objet courant correspondant au paramĂštre.

 Ă©quivalent au JS .querySelector() mais renvoie un objet jQuery.

.parents()

modifier

Cherche tous les parents de l'objet courant correspondant au paramĂštre.

.first()

modifier

Cherche le premier enfant de l'objet courant correspondant au paramĂštre.

.closest()

modifier

Cherche dans le premier parent de l'objet courant correspondant au paramĂštre.

.each()

modifier

Pour boucler sur tous les Ă©lĂ©ments possĂ©dant une classe :

$('.ma_classe').each(function(index, result) {
    if (result.value === null) {
        return true; // continue
    }

    if (result.value === "stop") {
        console.log(index);
        return false; // break
    }
});

Évùnements

modifier

Il existe deux syntaxes pour Ă©couter les Ă©vĂšnements : l'une avec la mĂ©thode "on" et l'autre avec le nom de l'Ă©vĂšnement directement. Exemple avec "change" :

$(document).on('change', '#mon_id', function () { ...

$('#mon_id').change(function() { ...

Les principaux Ă©vĂšnements utilisĂ©s sont[2] :

.ready()

modifier

Quand la page est finie de charger.

.change()

modifier

Quand on change la valeur d'un champ.

 On ne peut pas accĂ©der Ă  l'ancienne valeur depuis cette mĂ©thode (uniquement Ă  la nouvelle), il faut donc la dupliquer dans le DOM avant si besoin.

.click()

modifier

Quand on clique sur un élément.


.addClass() et .removeClass()

modifier

Permettent de rajouter des classes à des éléments JQuery.

Depuis la v1.4, on peut y mettre des fonctions[3]. Par exemple pour retirer toutes les classes par prĂ©fixe (finissant par un nombre) :

       monElement.removeClass(function (index, className) {
           regex = new RegExp(monPrefix + '[0-9]+', 'g');
           return (className.match(regex) || []).join(' ');
       });

.ajax()

modifier

La mĂ©thode jQuery.ajax() permet comme son nom l'indique de lancer des requĂȘtes AJAX, c'est-Ă -dire asynchrones[4] en XMLHttpRequest (XHR).

Pour appliquer un traitement dĂ©pendant du rĂ©sultat de ces requĂȘtes, il suffit de les faire suivre par les mĂ©thodes existantes qui correspondent Ă  chaque type de rĂ©sultat.

Par exemple, le code suivant rĂ©cupĂšre un fichier et affiche son contenu, ou une erreur si le fichier est inaccessible :

    $.ajax({
        url: "http://www.example.com",
        type: 'POST',
        data: {
            'id': 1,
        },
        dataType: 'json',

    }).done(function(data) {
        alert(data);

    }).fail(function() {
        alert('The file is missing!');
    });

 

Le style avec callbacks "error: / success:" sous "url:" est moins bien géré au niveau "defer" que les méthodes ".done() et .fail()" (voire ".then() et .fail()"), introduites dans la v1.5[5].

Mots réservés

modifier
Liste des mots spécifiques en jQuery[6]
Nom Fonction
$(), jQuery() Fonction de sélection, et d'initialisation
holdReady() Retiens ou relùche un évÚnement jQuery
noConflict() Supprime un mot réservé
sub() Crée une copie modifiable d'un objet jQuery
when() Planifie des objets
each() Sélectionne chaque élément d'un objet
parents() Sélectionne tous les éléments parents
parent() Sélectionne le parent direct
children() Sélectionne tous les enfants
closest() Sélectionne l'élément le plus proche avec une certaine caractéristique (évite des parent().parent().parent()).
hasClass() Renvoie si l'élément à une classe
addClass() Ajoute une classe
removeClass() Retire une classe
toggleClass() Échange deux classes
Sélecteurs
:animated Sélectionne les éléments animés
:hidden Sélectionne les éléments cachés
:visible Sélectionne les éléments visibles
:first Sélectionne le premier élément
:last Sélectionne le dernier élément
:even Sélectionne les éléments pairs
:odd Sélectionne les éléments impairs
:eq(index) Sélectionne le nÚme élément
:gt(index) Sélectionne les éléments supérieurs au nÚme
:lt(index) Sélectionne les éléments inférieurs au nÚme
:input Sélectionne les champs modifiables
:text Sélectionne les champs texte
:radio Sélectionne les boutons radio
:checkbox Sélectionne les cases à cocher
:checked Sélectionne les boutons radio et cases à cocher cochés
:first-child Sélectionne le premier élément enfant
:last-child Sélectionne le dernier élément enfant
parent > child Sélectionne le premier enfant d'un parent
Méthodes[7]
.attr() Affiche ou remplace la valeur d'un attribut
.val() Affiche ou remplace la valeur d'un champ
.html() Affiche ou remplace l'objet par de l'HTML
.text() Affiche ou remplace l'objet par du texte
.prepend() Ajoute le paramĂštre avant l'objet, dans la balise
.append() Ajoute le paramĂštre aprĂšs l'objet, dans la balise
.prependTo() Ajoute l'objet avant le paramĂštre, dans la balise
.appendTo() Ajoute l'objet aprĂšs le paramĂštre, dans la balise
.before() Ajoute le paramĂštre avant l'objet
.after() Ajoute le paramĂštre aprĂšs l'objet
.insertBefore() Ajoute l'objet avant le paramĂštre
.insertAfter() Ajoute l'objet aprĂšs le paramĂštre
.wrap() Ajoute les balises en paramĂštre autour de l'objet
.wrapInner() Ajoute les balises en paramÚtre autour de l'objet à l'intérieur
.wrapAll() Ajoute les balises en paramĂštre autour des objets
.clone() Duplique un objet
.empty() Vide un objet
.remove() Retire un objet
.removeAttr() Retire un attribut
.replaceWith() Remplace l'objet par le paramĂštre
.replaceAll() Remplace le paramĂštre par l'objet

Références

modifier