86 votes

Comment créer une nouvelle balise img avec JQuery, avec le src et l'id d'un objet JavaScript ?

Je comprends JQuery dans son sens le plus élémentaire, mais je suis vraiment novice en la matière, et je pense que c'est très facile.

J'ai le src et l'id de mon image dans une réponse JSON (convertie en objet), et donc les valeurs correctes dans responseObject.imgurl et responseObject.imgid, et maintenant j'aimerais créer une image avec et l'ajouter à une div (appelons-la <div id="imagediv"> . Je suis un peu bloqué sur la construction dynamique de l'élément <img src="dynamic" id="dynamic"> - la plupart des exemples que j'ai vus impliquent de remplacer le src d'une image existante, mais je n'ai pas d'image existante.

136voto

Rob W Points 125904

Dans jQuery, un nouvel élément peut être créé en passant une chaîne HTML au constructeur, comme indiqué ci-dessous :

var img = $('<img id="dynamic">'); //Equivalent: $(document.createElement('img'))
img.attr('src', responseObject.imgurl);
img.appendTo('#imagediv');

84voto

Frenchi In LA Points 1438
var img = $('<img />', { 
  id: 'Myid',
  src: 'MySrc.gif',
  alt: 'MyAlt'
});
img.appendTo($('#YourDiv'));

17voto

ErickBest Points 959

Vous économisez quelques octets en évitant le .attr en passant les propriétés à la fonction Constructeur jQuery :

var img = $('<img />',
             { id: 'Myid',
               src: 'MySrc.gif', 
               width: 300
             })
              .appendTo($('#YourDiv'));

2voto

Wexoni Points 376

Pour ceux qui ont besoin de la même fonctionnalité dans IE 8, voici comment j'ai résolu le problème :

  var myImage = $('<img/>');

               myImage.attr('width', 300);
               myImage.attr('height', 300);
               myImage.attr('class', "groupMediaPhoto");
               myImage.attr('src', photoUrl);

Je n'ai pas pu forcer IE8 à utiliser un objet dans le constructeur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X