一个非常奇怪的问题:
HTML:
<div id="data" class="hidden">{"items":[{"name"... "Click on: "}]}</div>
JQuery的:
var json_data = $("#data").html();
人们希望json_data
包含#data
div的内容,但出于某种原因,它包含:
{"items":[{"name"... "Click on: "}]}</p></h3>
请注意&#34; </p></h3>
&#34;在末尾。我在页面源中检查过,&#34; </p></h3>
&#34;无处可寻,页面上只有一个id为#data的div。
<div id="data">
的内容是来自PHP的json_encode($data);
的直接输出。
答案 0 :(得分:2)
html
方法返回从DOM中的元素创建的HTML代码,而不是原始源代码。
有时会在DOM中添加额外的元素,即使它们未在源代码中指定,例如tbody
元素中的table
元素。
在您的情况下,可能的原因是您在JSON字符串中的某处有<p>
和<h3>
,然后浏览器必须在解析源代码时将这些未终止的标记转换为元素。
要在页面中放置一个任意字符串,并且不将其中的HTML代码解析为元素,您可以对字符串进行HTML编码。