2016-11-07 63 views
4

以下代碼從Ajax json調用中獲取一個值,並將其附加到具有相應值的div上。事情是,它附加爲文本,而不是HTML,所以我從字面上看到我的HTML作爲文本在頁面上。我怎樣才能解決這個問題?jQuery附加爲文本而不是html

$.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

你能在小提琴上重現這個嗎?之前發生過類似的事情。 – Phiter

回答

6

通過寫$('.offer-list li .img a')[k]你在索引k,不是jQuery組得到實際的HTML元素。我想你的問題是由此造成的。

試試看看這個代碼。

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

eq的功能將在內部在索引k篩選的HTML元素jQuery的集合。請參閱文檔here

實際上讓你困惑的是,HTML元素有appendappendChild方法,並且每個方法分別將純文本或子節點附加到給定元素,因此您的代碼將HTML附加爲純文本。

+0

謝謝,這解決了它!在5分鐘內將它標記爲解決方案! –