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.length
c.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
});