我想我有一个非常简单的问题,但找不到解决方案。因此,我要通过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(); })
您应该使用$(this).html(newtext)而不是$(this).text(newtext)。
$(this).html(newtext)
$(this).text(newtext)
他们是完全不同的。.text()将“转义”您的HTML并将其作为简单文本插入。或文档说明:
.text()
我们需要注意,此方法会转义必要时提供的字符串,以便将其正确呈现为HTML。为此,它调用DOM方法.createTextNode(),而不将字符串解释为HTML。
您应该始终先阅读文档。
如果您已经在使用jQuery,则可以使用它的AJAX方法来简化您的生活。