繁体   English   中英

通过ajax将DIV内容加载为HTML

[英]Loading DIV content via ajax as HTML

我想我有一个非常简单的问题,但找不到解决方案。 因此,我要通过HTML加载DIV内容。 问题在于它不仅是文本,而且是图像。 Ajax调用返回HTML代码,但是该代码在DIV中显示为HTML,并且不会执行。 难以解释,但从示例中可以明显看出... AJAX调用返回字符串:

<img src="/images/weather/1.png" width="80px"><br>3.3 °C

问题很明显。 我得到的是实际的代码,而不是图像和div中的3.3°C,因此,我看到的不是图像,而是img src = ....

我知道我需要以某种方式解码HTML,但是我不知道如何执行此操作,非常感谢您的帮助。

我的Javascript代码是:

var xmlhttp;
if (window.XMLHttpRequest) {
    // code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp = new XMLHttpRequest();
} else {
    // code for IE6, IE5
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        newtext = xmlhttp.responseText;
    }
}
xmlhttp.open("GET", "message_ajax.php", true);
xmlhttp.send();
$('#text').fadeOut(function () {
    $(this).text(newtext).fadeIn();
})

您是否正在寻找这样的东西? https://api.jquery.com/load/

您可以在其中使用ajax将HTML加载到DIV中。 似乎就是您要的...

$( "#result" ).load( "ajax/test.html" );

您的ajax / test.html文件所在的位置

<img src="/images/weather/1.png" width="80px">

编辑...更具体。 这是使用jQuery。

您应该使用$(this).html(newtext)而不是$(this).text(newtext)

他们是完全不同的。 .text()将“转义”您的HTML并将其作为简单文本插入。 或文档说明:

我们需要注意,此方法会转义必要时提供的字符串,以便将其正确呈现为HTML。 为此,它调用DOM方法.createTextNode(),而不将字符串解释为HTML。

您应该始终先阅读文档。


如果您已经在使用jQuery,则可以使用它的AJAX方法来简化您的生活。

document.getElementById("divId").innerHTML = "<img ..........";    

要么

$("#divId").html("<img ..........");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM