2016-11-07 2 views
4

Der folgende Code ruft einen Wert von einem Ajax Json-Aufruf ab und sollte es an ein Div mit dem entsprechenden Wert anhängen. Die Sache ist, es hängt als Text, nicht als HTML, also sehe ich buchstäblich meinen HTML als Text auf der Seite. Wie kann ich das beheben?jQuery fügt als Text anstelle von HTML an

$.ajax({ 
    url: "https://domain.com/maprequest.php", 
    type: "POST", 
    dataType: 'json', 
    data: JSON.stringify(url_array), 
    crossDomain: true, 
    success: function(response) { 
     $.each(response, function(k, v) { 
      if (v != "") { 
       $('.offer-list li .img a')[k].append("<div class='hoverbox'><img src='" + v + "' alt='hover' /></div>"); 
      } 
     }); 
    } 
}); 
+2

Können Sie dies auf einer Geige reproduzieren? Etwas ähnliches ist mir schon einmal passiert. – Phiter

Antwort

6

von $('.offer-list li .img a')[k] Schreiben Sie das eigentliche HTML-Element an dem Index k, keine jQuery Set erhalten. Ich schätze, dass dein Problem dadurch verursacht wird.

Versuchen Sie diesen Code.

$('.offer-list li .img a').eq(k).append("<div class='hoverbox'><img src='" + v + "' alt='hover' /></div>"); 

eq Die Funktion wird das jQuery-Set für das HTML-Element im Index k intern filtern. Siehe Dokumentation here.

Was Sie eigentlich verwirrt ist, dass ein HTML-Element die append und appendChild Methoden hat, und jeweils jeweils reinen Text oder ein Kindknoten an ein bestimmtes Element anhängen, daher wurde der HTML-Code als reiner Text angehängt.

+0

Danke, das hat es gelöst! Ill markieren Sie es als eine Lösung in 5 Minuten! –