以下代码从Ajax json调用中获取值,并应将其附加到具有相应值的div。事实是,它作为文本而不是html附加,所以我在页面上看到我的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>");
}
});
}
});
答案 0 :(得分:12)
通过编写$('.offer-list li .img a')[k]
,您可以获得索引为k
的实际HTML元素,而不是jQuery
集。我想你的问题是由此引起的。
试试这段代码。
$('.offer-list li .img a').eq(k).append("<div class='hoverbox'><img src='" + v + "' alt='hover' /></div>");
eq
函数将在内部过滤索引为k
的HTML元素的jQuery集。请参阅文档here。
实际上让您困惑的是HTML元素具有append
和appendChild
方法,并且每个方法分别将纯文本或子节点附加到给定元素,因此您的代码将HTML附加为纯文本。