Formation PUB040 : JavaScript et autres bibliothèques côté client, 2020 jQuery

7.3 Élément du DOM vs objet jQuery


Selon la technique utilisée pour retrouver une information du DOM, on pourra obtenir soit une variable simple (un élément du DOM), soit un objet jQuery.

jQuery

var id = $(select).val();   // id est une variable simple

var $premierFormulaire = $('#premierformulaire');   // $premierFormulaire est un objet jQuery

var deuxiemeFormulaire = document.getElementById('deuxiemeformulaire');   // deuxiemeFormulaire est un élément du DOM

La différence entre les un élément du DOM et un objet jQuery, c'est qu'on peut appliquer directement une méthode jQuery à un objet jQuery.

Si on a en main un élément du DOM, il faudra le convertir en objet jQuery en l'entourant par $() avant de lui appliquer une méthode jQuery.

jQuery

var donneesPremierFormulaire = $premierFormulaire.serialize();   //méthode jQuery appliquée directement à l'objet jQuery

var donneesDeuxiemeFormulaire = $(deuxiemeFormulaire).serialize();   // conversion de l'élément du DOM avant de lui appliquer une méthode jQuery

Si on tente d'appliquer une méthode jQuery directement sur un élément du DOM, on obtiendra une erreur du genre « Uncaugh TypeError: Cannot read property ... of null ».

Uncaugh TypeError: Cannot read peoperty serialize of null

Par convention, les variables qui contiennent un objet jQuery portent un nom débutant par $. Dans ce contexte, le signe $ n'effectue rien de particulier. Il s'agit simplement d'un standard de nomenclature pour différencier les objets jQuery des éléments du DOM.

Lorsque le nom d'une variable débute par $, on saura qu'il s'agit d'un objet jQuery. On pourra donc lui appliquer directement une méthode jQuery.

Pour plus d'information

« Naming variables that store DOM elements - Naming with a dollar prefix ». JavaScript Code Readability. http://www.codereadability.com/naming-variables-that-store-dom-elements/#namingwithadollarprefix

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre