le MEMO du WEB développeur
••• JQuery •••  Liste des Mémos, astuces et bonnes pratiques

Rajouter un élément dans le DOM

JQuery permet de rajouter à la volée des événements dans le DOM.

Ici l'on créé un nouvel élément DIV dans le DOM (qui n'existe pas dans le document HTML de départ)

var new_element = jQuery('<div id="new_elt">?</div>');
// On ajoute du style avec la fonction .css()
new_element.css({
    background: 'gray',
    width     : '50px',
    height    : '30px',
    padding   : '3px'
}); 

Pour le moment, notre élément new_element  existe, il est stocké dans la mémoire, mais il n'est pas encore affiché à l'écran.

Pour l'insérer dans le DOM, il faut ajouter ce nouvel élément new_element à l'intérieur d'un élément existant dans le document HTML avec les méthode JQuery append() ou prepend()

$('body').append(new_element);

Ici on a ajouté notre nouvel élément div new_element à la fin du body du document HTML (pour l'insérer au début, on aurait utilisé la méthode prepend())

source : http://www.finalclap.com/tuto/cours-jquery-61/manipuler-dom-66/

Avertissement :

le nouvel élément rajouté ainsi dans le DOM ne répondra pas aux évenements associés à sa classe ou à son sélecteur !!

Par exemple, le div précédemment ajouté dans le DOM, d'identifiant id="new_elt" ne répondra pas à l'événement suivant :

$("#new_elt").click (function () { alert ('cette alerte ne sera jamais déclenchée...'); });

Pour pouvoir agir sur l'évenement click du div #new_elt inséré dans le DOM,  il faut obligatoirement faire appel à la fonction JQuery live()

live() permet d'associer un événement à un élément qui n'existe pas encore au moment de l'affichage

 $("#monDiv").live("click", function(){
         alert ('hourra, j\'ai cliqué sur new_element');
 });
 
Avertissement
La méthode live() est dépréciée depuis jQuery 1.7, il est conseillé de la remplacer par delegate() ou on(). Des explications claires sur ce blog
 
 
publié le 14/12/2011 par Memo Web
Commenter le Mémo :

Sélecteurs RegExp et JQuery
Parcourir tous les éléments d'une classe en JQuery
Détecter lorsqu'on appuie sur la touche entrée en JQuery
Empêcher de coller du texte dans un champs input de type text
Ajouter / Déplacer dynamiquement un élément dans le DOM avec jQuery
Atteindre une ancre avec JQuery
Détecter un click à l'extérieur d'un élément avec JQuery
JQuery - Queue() : Attendre qu'une animation se termine avant de commencer la suivante
Comment faire des opérations avec les attributs de style exprimés en px
Jquery récupérer les valeurs de checkbox, select et radio
Ajoutez vos propres Mémos sur MEMO-WEB

Il suffit de vous créer un compte sur le site

Vous pourrez choisir un thème parmis l'une des catégories proposées par MEMO-WEB.

Rédigez votre Mémo.
Après validation par MEMO-WEB, il sera mis en ligne.
Ajouter vos Mémos