通过ajax将DIV内容加载为HTML

我想我有一个非常简单的问题,但我找不到解决方案。 所以我想要的是通过HTML加载DIV内容。 问题是它不仅是文本,还是图像。 ajax调用返回HTML代码,但它在DIV中显示为HTML并且不会执行。 很难解释,但从示例中显而易见…… AJAX调用返回字符串:


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(); }) 

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

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

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

您应该首先阅读文档。


如果你已经在使用jQuery,你可以使用它的AJAX方法 ,让你的生活更轻松。

你在找这样的东西吗? https://api.jquery.com/load/

您可以使用ajax将HTML加载到DIV中。 似乎是你在问什么……

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

您的ajax / test.html文件包含的位置

  

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

 document.getElementById("divId").innerHTML = " 

要么

 $("#divId").html("