由于某种原因,当我使用json_encode
然后使用JSON.parse
来抓取JS中的数组时-HTML字符串仅获取字符串的结束标记。例如:
$php_array = array (
"title" => "this is a <strong>title</strong>",
"text" => "<p>this is some text</p>"
)
<div id="data"><?php echo json_encode($php_array); ?></div>
然后用JS:
const someArray = $('#data').text();
const data = JSON.parse(someArray);
输出如下:
0:
title: "this is a title</strong>",
text: "this is some text</p>"
有什么想法会导致这种情况吗?
答案 0 :(得分:2)
您正在输出HTML,而浏览器正在将其解释为这样。
更改此行:
<div id="data"><?php echo json_encode($php_array); ?></div>
对此:
<script> var data = <?php echo json_encode($php_array); ?>; </script>
答案 1 :(得分:0)
通过将htmlspecialchars()
添加到特定的HTML项目中来解决此问题。