Simplication de nombreuses opérations courantes
Doc extensive très bien faite
Une librairie est simplement un fichier javascript
accès à distance
<script type="text/javascript"
src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
Ou en local
<script type="text/javascript" src="jquery-3.5.1.min.js"></script>
Un object encapsulant une collection d'objets DOM
jQuery()
$()
$(object DOM)Encapsulation d'un élément DOM dans un objet jQuery
$(selecteur)$("li")li la page$(".className")className$("#blah")id="blah"Si c est une collection jQuery
c.find("a")<a>
c.add(qque chose)c et quelque chose
c.parent()c.children()c.siblings()c.prev(), c.next()Générales
c.lengthc.eq(i)c
Prévu quand c contient un seul noeud de l'arbre DOM :
c.css("color")color
c.attr("href")c.text()c.val()textarea, input et select)Actions sur chacun des éléments de la collection
c.css("color","red")color
c.attr("href","blah")href="blah"c.text("du texte")c.each(fonction)c.addClass("className")c.removeClass("classN")Note: c.css() peut prendre un objet en argument:
c.css({color: "red", margin: "10pt"})
c.each()$("h2").each(function(idx) {
// "idx" est l'index de l'élément dans la collection
console.log(idx + " : " + $(this).text());
// "this" est l'objet DOM courant.
// Ici on l'encapsule dans un object jQuery
});
Création avec ou sans attributs
$("<h1>")
$("<a>", { href : "http://www.centralesupelec.fr"})Insertion
.append(newNode), .prepend(newNode)
.after(newNode), .before(newNode)
Remplacement, suppression
.replaceWith(newNode)
.remove(), .detach()
Avec le nom de l'évènement
function maFonction(evt) {
/* code à exécuter lorsque l'événement se produit
L'object "evt" contient les données de l'évènement
(position de la souris, etc) */
});
objetJQuery.nomEvenement(maFonction);
On peut aussi utiliser une fonction anonyme
objetJQuery.nomEvenement(function(evt){
// code à exécuter lorsque l'événement se produit
});
La liste est sur le site de l'API
.hide().show().toggle()Les même avec des effets
.fadeOut() et .slideUp()
.fadeIn() et .slideDown()
.fadeToggle() et .slideToggle()
Un design très commun en javascript
$("p") // sélectionne tous les paragraphes
.find("strong") // toutes les balises <strong> dedans
.each(function(x) { // action sur chacune de ces balises
$(this).append( // on ajoute un noeud à la fin
$("<a>") // c'est une balise de lien
.attr("href","www.lri.fr") // avec un attribut
.text(" [click]") // et du texte
.css({color: "green"}) // avec un style
)
});
Un design très commun en javascript
$("section") // sélectionne toutes les sections
.find("h2") // toutes les balises <h2> dedans
.click(function(event) { // reaction au clic sur un titre
$(this) // encapsulation de l'elt cliqué
.siblings() // on sélectionne les noeuds de même niveau
.slideToggle() // et on les cache/montre
});