jQuery
jQuery est une librairie Javascript facilitant la manipulation du DOM.
Très populaire avant l'avènement des frameworks JS, son utilisation est aujourd'hui plus rare.
Intégration
Via CDN
A intégrer juste avant la fermeture du body de la page :
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
Via npm
npm install jquery
Bases
Accès aux éléments
La fonction jQuery ou $ permet d'accéder aux éléments du DOM et remplace :
getElementById
//Jquery
let elm=$('#bt');
//Javascript
let elm=document.getElementById('bt');
getElementsByTagName
//Jquery
let elms=$('a');
//Javascript
let elms=document.getElementsByTagName('a');
getElementsByClassName
//Jquery
let elms=$('.myClass');
//Javascript
let elms=document.getElementsByClassName('myClass');
querySelectorAll
//Jquery
let elms=$('a.myClass');
//Javascript
let elms=document.querySelectorAll('a.myClass');
Actions sur éléments
La fonction jQuery ou $ retourne 1 jQuery object pouvant contenir 0 ou plusieurs éléméents du DOM.
Elle expose des méthodes dont certaines vont pouvoir modifier tous les éléments retournés (sans avoir à faire une itération).
//Masquage de tous les h1
$('h1').hide();
//Affichage de tous les h1
$('h1').show();
//ajout de la classe header à tous les h1
$('h1').addClass('header');
//Equivalent Javascript
let h1Elms=document.querySelectorAll('h1');
[...h1Elms].forEach((elm)=>{
elm.classList.add('header');
}
);
Events sur éléments
L'objet jQuery permet également d'ajouter des listener sur les éléments du DOM retournés.
//Click sur tous les h1
$('h1').click(()=>console.log('click sur h1'));
//Equivalent Javascript
let h1Elms=document.querySelectorAll('h1');
[...h1Elms].addEventListener('click',(elm)=>{
console.log('click sur h1'));
}
);
Ou d'ajouter des écouteurs d'évènements qui pourront être associés aux éléments présents et futurs de la page :
$('body').click('h1',()=>console.log('click sur h1'));
Les évènements peuvent être déclenchés, si la méthode est appelée sans paramètre :
//Provoque le click sur tous les h1
$('h1').click();
Chargement du DOM
Il est parfois nécessaire d'attendre que le DOM soit chargé avant d'exécuter du code :
$('document').ready(function(){
//Code à exécuter après le chargement du DOM
});
//Version courte
$(function(){
//Code à exécuter après le chargement du DOM
});