Jquery
Affichage des propriétés et méthodes définies sur l'objet jQuery
<script type="text/javascript">
var txt = "Dans l'objet jQuery :\n\n";
for (var prop in jQuery) txt += prop + ", ";
alert (txt);
</script>
Affichage des propriétés et méthodes définies sur l'objet retourné par jQuery
<script type="text/javascript">
var txt = "Dans l'objet retourné par jQuery () :\n\n";
for (var prop in jQuery ()) txt += prop + ", ";
alert (txt);
</script>
$.fn.jquery : récupérer la version de jQuery utilisée
<script type="text/javascript">
alert ($.fn.jquery);
</script>
Propriétés et méthodes
instanceof
<script type="text/javascript">
alert (jQuery instanceof Function);
</script>
$.each (obj, callback (property, value) ) : parcours des propriétés d'un objet
<script type="text/javascript">
var obj = { nom : "Anglade", prenom : "Bernie" };
var txt = "";
$.each (obj, function (key, value) {
txt += key + " = " + value + "\n";
});
alert (txt);
</script>
<script type="text/javascript">
var obj = { nom : "Anglade", prenom : "Bernie" };
var txt = "";
for (var prop in obj)
txt += prop + " = " + obj[prop] + "\n";
alert (txt);
</script>
$.each (array, callback (index, value) ) : parcours des éléments d'un tableau
<script type="text/javascript">
var t = new Array ();
t[9] = "Bernie";
var txt = "";
$.each (t, function (index, value){
txt += "[" + index + "]" + " = " + value + "\n";
});
alert (txt);
</script>
$.each (string, callback (index, value) ) : parcours des caractères dans une chaîne
<script type="text/javascript">
var txt = "";
$.each ("Bernie", function (index, value) {
txt += "[" + index + "]" + " = " + value + "\n"
});
alert (txt);
</script>
<script type="text/javascript">
var s = "Bernie";
var txt = "";
for (i = 0 ; i < s.length ; i++)
txt += "[" + i + "]" + " = " + s.charAt (i) + "\n";
alert (txt);
</script>
$.extend (obj1, obj2) : ajouter des propriétés à un objet
<script type="text/javascript">
$.extend (obj1, obj2);
</script>
length : connaitre le nombre d'éléments
<script type="text/javascript">
var t = new Array ();
t[9] = "Bernie";
alert (t.length);
</script>
push : insère un élément à la fin d'un tableau
<script type="text/javascript">
t.push ("Anglade");
</script>
$.grep (array, callback (value, index) ) : trier un tableau
<script type="text/javascript">
var a = [ 5, 32, -12, 57, -9, -45 ];
var pos = $.grep (a, function (value, index) {
if (value >= 0) return true;
});
alert (pos);
</script>
$.map (array, callback (value, index) ) : créer un nouveau tableau
<script type="text/javascript">
var a = [ 5, 32, -12, 57, -9, -45 ];
var posX2 = $.map (a, function (value, index) {
if (value >= 0) return 2 * value;
});
alert (posX2);
</script>
$.merge (array1, array2) : concaténer deux tableaux
<script type="text/javascript">
var a1 = [ "Bernie" ];
var a2 = [ "Anglade" ];
var a = $.merge (a1, a2);
alert (a);
</script>
Duplication de tableau avec $.merge (array1, array2)
<script type="text/javascript">
var a1 = [ "Bernie", "Anglade" ];
var a = $.merge ([], a1);
alert (a);
</script>
$.trim (string) : éliminer les espaces en début et en fin de chaîne
<script type="text/javascript">
var s1 = " Bernie \n\n"
var s = $.trim (s1);
alert (s);
</script>
$.param (obj) : sérialiser les valeurs contenues dans un objet
<script type="text/javascript">
var obj = { nom : "Anglade", prenom : "Bernie" };
var s = $.param (obj);
alert (s);
</script>
<script type="text/javascript">
var obj = { nom : "Anglade", prenom : "Bernie", adresse : { rue : "10 rue de Marseille", ville : "Paris" } };
var s = $.param (obj);
alert (s);
</script>
decodeURIComponent (s) : décoder une chaîne UTF-8
<script type="text/javascript">
var s1 = decodeURIComponent (s);
alert (s1);
</script>
$.browser : récupérer le navigateur utilisé
<script type="text/javascript">
var txt = "";
$.each ($.browser, function (key, value) {
txt += key + " = " + value + "\n";
});
alert (txt);
if ($.browser.mozilla) alert ("Firefox");
else if ($.browser.msie) alert ("Internet Explorer");
else if ($.browser.opera) alert ("Opera");
else if ($.browser.webkit) alert ("Safari ou Chrome");
else alert ("Inconnu au bataillon");
</script>
$.noConflict () : éviter les conflits entre jQuery et d'autres bibliothèques JavaScript
<script type="text/javascript">
var myjQuery = $.noConflict ();
// var myjQuery = $.noConflict (true); -> Supprime l'utilisation de $, $ (), jQuery et jQuery ()
alert (myjQuery () instanceof jQuery);
</script>
Les différents types de sélecteurs
Sélecteurs simples
<script type="text/javascript">
$('*');
$('p');
$('img');
</script>
Sélecteurs d'attributs
<script type="text/javascript">
$('p[name]'); // Tous les paragraphes ayant un attribut name
$('*[name]'); // Toutes les balises ayant un attribut name
$('p[name="Bernie Anglade"]'); // Tous les paragraphes ayant un attribut name="Bernie Anglade" (valeur exacte)
$('p[name=Bernie]'); // Tous les paragraphes ayant un attribut name="Bernie" (valeur exacte)
$('p[name~="Bernie"]'); // Tous les paragraphes ayant un attribut name contenant la valeur Bernie délimitée par des espaces
$('p[name][job]'); // Tous les paragraphes ayant un attribut name et un attribut job
$('p[name^="Ber"]'); // Tous les paragraphes ayant un attribut name dont la valeur commence par Ber
$('p[name$="nie"]'); // Tous les paragraphes ayant un attribut name dont la valeur se termine par ion
$('p[name*="erni"'); // Tous les paragraphes ayant un attribut name dont la valeur contient erni
</script>
Sélecteurs de classe
<script type="text/javascript">
$('p[class~="rotation"'); // Tous les paragraphes ayant la classe CSS rotation
$('p.rotation'); // Équivalent
$('p.translation.rotation'); // Tous les paragraphes ayant les classes CSS translation et rotation
$('*.rotation'); // Tous les éléments ayant la classe CSS rotation
$('.rotation'); // Équivalent
</script>
Sélecteurs d'identifiant
<script type="text/javascript">
$('p[id="idpara1"]'); // Tous les paragraphes ayant un attribut id possédant la valeur idpara1
$('p[id=idpara1]'); // Équivalent
$('p#idpara1'); // Le premier paragraphe ayant un attribut id possédant la valeur idpara1
$('*[id=idpara1]'); // Tous les éléments ayant un attribut id possédant la valeur idpara1
$('*#idpara1'); // Le premier élément ayant un attribut id possédant la valeur idpara1
$('#idpara1'); // Équivalent
</script>
Les pseudo-classes
Pseudo-classes générales
<script type="text/javascript">
$('*:first-child'); // Premier élément de l'élément père
$('*:last-child'); // Dernier élément de l'élément père
$('*:nth-child(an+b)'); // (an+b)ième enfant de l'élément père
$('*:nth-child(2n)'); // Éléments pair
$('*:nth-child(even)'); // Éléments pair
$('*:nth-child(2n+1)'); // Éléments impair
$('*:nth-child(odd)'); // Éléments impair
$('*:nth-child(0n+5)'); // Cinquième élément
$('*:nth-child(-1n+5)'); // Cinq premiers éléments
$('*:only-child'); // Élément unique
$('*:first-child:last-child'); // Élément unique
$('*:not(:last-child)'); // Tous les éléments sauf le dernier
$('*:empty'); // Éléments vides
$('*:eq(n)'); // (n)iéme élément
$('*:gt(n)'); // A partir du (n)ième élément exclu
$('*:lt(n)'); // Du premier au (n)ième élément exclu
$('*:first'); // Premier élément
$('*:last'); // Dernier élément
$('*:parent'); // Éléments non vide
$('*:contains("Bernie")'); // Éléments contenant Bernie
$('*:contains(Bernie)'); // Éléments contenant Bernie
$('*:has(b)'); // Éléments contenant la balise <b></b>
$('p:has(b:contains("Bernie"))'); // Tous les paragraphes contenant le texte Bernie mis en gras
$('*:hidden'); // Éléments cachés
$('*:visible'); // Éléments visibles
$('*:header'); // Titres (h1 à h6)
$('*:animated'); // Éléments animés
</script>
Pseudo-classes liées aux formulaires
<script type="text/javascript">
:input // <input>,<textarea>,<select>,<button>
:text // <input type="text">
:password // <input type="password">
:radio // <input type="radio">
:checkbox // <input type="checkbox">
:submit // <input type="submit">
:image // <input type="image">
:reset // <input type="reset">
:button // <input type="button">
:file // <input type="file">
:disabled // <input type="text" disabled="disabled" />
:enabled // disabled="disabled" non présent
:checked // <input type="checkbox" checked="checked" />
:selected // <option selected="selected"></option>
</script>
Les combinateurs
Combinateurs de descendance
<script type="text/javascript">
$('div h1'); // h1 ayant un élément div parent
$('div h1.red'); // h1 de classe CSS red ayant un élément div parent
$('div * h1'); // h1 ayant un élément div parent, mais pas en fils direct
$('div > h1); // h1 fils direct d'une élément div
</script>
Combinateurs d'adjacense
<script type="text/javascript">
$('h1 + h2'); // h2 suivant directement un élément h1
$('h1 ~ h2'); // h2 suivant un élément h1
</script>
Les sélecteurs multiples
<script type="text/javascript">
$('selecteur1, selecteur2, selecteur3, ...');
$('p, img, span'); // Sélectionne les éléments p, img et span
</script>
Les différentes formes de la fonction jQuery()
$(selector, context)
<script type="text/javascript">
$("p:even", document.getElementById("myId")); // La recherche s'effectue à partir de l'élément context
</script>
$(element)
<script type="text/javascript">
$(document.getElementById("myId"));
</script>
$(elements)
<script type="text/javascript">
$([document.getElementById("myId1"), document.getElementById("myId2")]);
</script>
$(jQueryObject)
<script type="text/javascript">
var obj1 = $("p");
var obj2 = $(obj1);
obj2.css ({ "background-color" : "black", color : "white" });
</script>
$(html)
<script type="text/javascript">
var obj1 = $("<p>para1</p><p>para2</p>");
obj1.appendTo ("body"); // insérer les éléments HTML en fin de <body>
</script>
Les méthodes d'accès au DOM
Supprimer des éléments dans la liste
<script type="text/javascript">
// filter (selecteur)
$("p").filter (":contains(2)").css ("display","none"); // Sélectionne les paragraphes contenant "2"
// filter (callback)
$("p").filter (function (index) {
if (index > 0) return true; // Sélectionne uniquement les éléments à true
}).css ("display","none");
// not (elements)
$(document.getElementById("p2")).not (p).css ("display","none"); // Exclu p2 de la liste des paragraphes sélectionnés
// has (selecteur)
$("div").has ("p:contains(4)").css ("display","none"); // Conserve seulement les divs contenant un paragraphe incluant le texte 4
// slice (startIndex, endIndex)
$("p").slice (2, 4).css ("display","none"); // Sélectionne les paragraphes ayant l'indice 2 exclu à 4
// eq (index)
$("p").eq (2).css ("display","none"); // Conserve uniquement l'élément situé à l'index 2
first ()
$("p").first ().css ("display","none"); // Conserve uniquement le premier élément
last ()
$("p").last ().css ("display","none"); // Conserve uniquement le dernier élément
</script>
Requêtes serveur avec Ajax
Options disponibles
<script type="text/javascript">
// Configuration générale de la requête
options.url // URL du programme sur le serveur qui traite le requête
options.data // Objet ou chaîne de caractères transmis au serveur
options.context // Object considéré comme this dans les fonctions de callback
options.type // Mode de transmission des paramètres "post" ou "get"
options.dataType // Type souhaité des données retournées par le serveur "text", "xml", "html", "script", ou "json"
// Fonctions de callback permettant un traitement
options.beforeSend // Appelée avant que la requête Ajax ne soit effectuée
options.dataFilter // Appelée lorsque la requête Ajax a réussi
options.success // Appelée lorsque la requête Ajax a réussi
options.error // Appelée lorsque la requête Ajax produit une erreur
options.complete // Appelée à la fin de la requête Ajax
// Paramétrage du serveur
options.username // Nom d'utilisateurs à indiquer si le serveur nécessite une autorisation
options.password // Mot de passe associé
options.timeout // Délai maximum en ms avant d'échouer la requête et d'appeler options.error
</script>
Séquence d'appel des fonctions de callback
<script type="text/javascript">
var txt = "";
$.ajax ({
url: "action.php", // URL de la page de traitement sur le serveur
succes: function () {
txt += "success \n";
},
error: function () { // Fonction appellée lorsque la requête Ajax a produit une erreur
txt += "error \n";
},
beforeSend: function () { // Fonction appellée avant que la requête Ajax ne soit effectuée
txt += "beforeSend \n";
},
dataFilter: function () { // Fonction appellée lorsque la requête Ajax a réussi
txt += "dataFilter \n";
},
complete: function () { // Fonction appellée à la fin de la requête Ajax (réussi ou non)
txt += "complete \n";
alert (txt);
}
});
</script>
<?php
echo $txt = utf8_encode("<p>Réponse du serveur</p>");
?>
Traiter la réponse du serveur
<script type="text/javascript">
var txt = "";
$.ajax ({
url: "action.php", // URL de la page de traitement sur le serveur
complete: function (xhr, result) { // Fonction appellée à la fin de la requête Ajax (réussi ou non)
if (result != "success") return;
var response = xhr.responseText;
$("body").html (response);
}
});
</script>
<?php
echo $txt = utf8_encode("<p>Réponse du serveur</p>");
?>
Transmettre des paramètres au serveur
<input type="text" id="idtext">
<input type="button" id="idbutton" value="valider">
<script type="text/javascript">
$("#idbutton").click (function (event) {
var value = $("#idtext").val ();
var data = { send : value };
$.ajax ({
url: "action.php",
data: data,
complete: function (xhr, result) {
if (result != "success") return;
var response = xhr.responseText;
$("body").append (response);
}
});
});
</script>
<?php
$send = utf8_decode ($_REQUEST["send"]);
$txt = "<p>Le texte envoyé est: $send</p>";
echo $txt = utf8_encode($txt);
?>
Évenements Ajax
<script type="text/javascript">
$("body").ajaxStart (function() { // Appellé lorsqu'une requête Ajax est envoyée, si aucune autre n'est en cours
$(this).append (<p>ajaxStart</p>);
});
$("body").ajaxStop (function() { // Appellé lorsque la dernière requête Ajax est terminée
$(this).append (<p>ajaxStop</p>);
});
$("body").ajaxComplete (function() { // Appellé lorsqu'une requête Ajax est terminé (succès ou non)
$(this).append (<p>ajaxComplete</p>);
});
$("body").ajaxSend (function() { // Appellé lorsqu'une requête Ajax est envoyée, même si une autre est déja en cours
$(this).append (<p>ajaxSend</p>);
});
$("body").ajaxSuccess (function() { // Appellé lorsqu'une requête Ajax s'est terminé avec succès
$(this).append (<p>ajaxSuccess</p>);
});
$("body").ajaxError (function() { // Appellé lorsqu'une requête Ajax s'est terminé par une erreur
$(this).append (<p>ajaxError</p>);
});
</script>
Formulaires
Désactiver l'envoi
<script type="text/javascript">
$('#formulaire').on('submit', function(e) {
e.preventDefault();
});
</script>
Soumettre un formulaire
<script type="text/javascript">
$('#formulaire').on('submit', function(e) {
document.nom_du_formulaire.submit();
});
</script>
Divers
Tester l'existence d'un élément
<script type="text/javascript">
var element = $("#id");
if(element.length){
//L'élément existe
} else {
//L'élément n'existe pas
}
var element = $("#id").first();
var element = $("#id").last();
var element = $("#id").eq(0);
</script>
DataTable
How to redraw DataTable with new data
$('#upload-new-data').on('click', function () {
datatable.clear().draw();
datatable.rows.add(NewlyCreatedData); // Add new data
datatable.columns.adjust().draw(); // Redraw the DataTable
});