jQuery追加为文本而不是html

时间:2016-11-07 09:53:58

标签: javascript jquery html

以下代码从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>");
            }
        });
    }
});

1 个答案:

答案 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元素具有appendappendChild方法,并且每个方法分别将纯文本或子节点附加到给定元素,因此您的代码将HTML附加为纯文本。