以下代码从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>"); } }); } });
解决方法
通过编写$(‘.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作为纯文本附加.