AJAX响应的提取部分缺少HTML开放标记

时间:2014-04-27 08:13:28

标签: jquery ajax

由于某些原因,AJAX响应的提取部分中缺少所有打开的HTML标记。请参阅下面的代码和警告框图像。有谁知道为什么会这样?

alert(data);
json_response = $(data).find('div#json').text();
alert(json_response);

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:0)

使用

json_response = $(data).find('div#json').html();

答案 1 :(得分:0)

由于某些原因,您在HTML中使用了JSON,但浏览器的HTML解析器并不了解JSON,因此它将JSON中的HTML视为文档的一部分。由于斜杠是(不必要的)转义它只识别开头而不是结束标签,因为你使用.text()它会给你文本,但不会识别它识别的HTML元素。

为什么你的HTML里面有JSON?别这么做。

如果您认为必须这样,那么您需要HTML转义JSON:

<div><div id="json">{"twee": "&lt;ol&gt;&lt;li&gt;pro&lt;/li&gt;&lt/ol;li&gt;hallo&lt;/li&gt;&lt;&gt;"}</div></div>