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 :

StopPropagation() ou Empêcher un évenement de se propager aux parents de l'élément
Ajouter / Déplacer dynamiquement un élément dans le DOM avec jQuery
Apparition d'un élément en fondu avec JQuery sur le survol de souris
Problème évenement click sous IE
Not(expr) Element d'exclusion en Jquery
DatePicker de JQuery : Déployer le calendrier à l'ouverture de la page
Sélecteurs RegExp et JQuery
Charger JQuery directement via les librairies google
Connaître l'URL courante avec jQuery
Empêcher de coller du texte dans un champs input de type text
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