2011-11-04 10 views
72

Rozumiem JQuery w podstawowym tego słowa znaczeniu, ale jestem zdecydowanie nowy i podejrzewam, że jest to bardzo łatwe.Jak utworzyć nowy znacznik IMG w JQuery, z src i id z obiektu JavaScript?

Mam obraz src i id w odpowiedzi JSON (przekonwertowany na obiekt), a zatem poprawne wartości w responseObject.imgurl i responseObject.imgid, a teraz chciałbym utworzyć z nim obraz i dołącz go do elementu div (można go nazwać: <div id="imagediv">.) Utknąłem na dynamicznym budowaniu modelu <img src="dynamic" id="dynamic"> - większość przykładów, które widziałem, dotyczy zastąpienia src istniejącym obrazem, ale nie mam istniejącego obrazu .

Odpowiedz

113

w jQuery, nowy element może być utworzony przez przechodzącą ciąg HTML do konstruktora, jak pokazano poniżej:

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

@ a7omiton Wyświetl źródło przez menu kontekstowe lub przez inspektora? Menu kontekstowe (lub Ctrl + U) pokazuje dane otrzymane z serwera bez zmian dokonanych przez JavaScript. Użyj inspektora DOM, aby zobaczyć aktywny dokument dokumentu HTML ze zmianami na żywo. –

+0

Przepraszam, że usunąłem komentarz: /, pojawia się teraz w narzędziach programisty, strona wisiała z powodu błędu 404 jQuery z mapą – a7omiton

+0

Masz rację, jednak zdjęcia nie pojawiają się na stronie źródłowej (ctrl + u) – a7omiton

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

zaoszczędzić kilka bajtów przez unikanie .attr całkowicie przez przekazanie własności do jQuery constructor:

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

To nie działa w przeglądarce Internet Explorer 8 –

+0

Czego próbowałeś, nie działał? ... czy mogę zobaczyć Twoje kody? – ErickBest

2

Dla tych, którzy potrzebują takiej samej funkcji w IE 8, to w jaki sposób rozwiązać ten problem:

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

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

Nie mogłem zmusić IE8 do użycia obiektu w konstruktorze.

Powiązane problemy