Programmation JavaScript/jQuery

jQuery est un framework JavaScript libre lancé en janvier 2006 par John Resig.
Installation
[modifier | modifier le wikicode]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 | modifier le wikicode]Recherches
[modifier | modifier le wikicode]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.
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 | modifier le wikicode]Cherche tous les enfants de l'objet courant correspondant au paramètre.
.parents()
[modifier | modifier le wikicode]Cherche tous les parents de l'objet courant correspondant au paramètre.
.first()
[modifier | modifier le wikicode]Cherche le premier enfant de l'objet courant correspondant au paramètre.
.closest()
[modifier | modifier le wikicode]Cherche dans le premier parent de l'objet courant correspondant au paramètre.
.each()
[modifier | modifier le wikicode]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 | modifier le wikicode]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 | modifier le wikicode]Quand la page est finie de charger.
.change()
[modifier | modifier le wikicode]Quand on change la valeur d'un champ.
.click()
[modifier | modifier le wikicode]Quand on clique sur un élément.
.addClass() et .removeClass()
[modifier | modifier le wikicode]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 | modifier le wikicode]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 | modifier le wikicode]| 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 | modifier le wikicode]- ↑ https://api.jquery.com/category/traversing/
- ↑ https://api.jquery.com/category/events/
- ↑ https://stackoverflow.com/questions/2644299/jquery-removeclass-wildcard
- ↑ http://api.jquery.com/jquery.ajax/
- ↑ https://stackoverflow.com/questions/10931836/should-i-use-done-and-fail-for-new-jquery-ajax-code-instead-of-success-and
- ↑ http://api.jquery.com/category/core/
- ↑ http://tutorials.jenkov.com/jquery/dom.html
