我在页面上使用PHP
的HTML元素中有JSONecho "<div id='json'>" . json_encode($response) . "</div>";
我想简单地使用jQuery将数据记录到控制台(暂时),但我得到的唯一回应是:
Object { }
这是我的jQuery
jQuery(document).ready(function(){
var data = jQuery("#json").data();
console.log(data);
});
和示例JSON数据响应
{
"posts":{
"attributes":{
"dfp_post":3,
"dfp_shortcode":"[dfp_ads id=1383]",
"wildcard_pos":5,
"wildcard_shortcode":"[widget id='wp_widget-46']",
"twitter_id":"@TeamName",
"twitter_pos":8,
"facebook_id":"teamname",
"facebook_pos":5
},
"0":{
"post":{
"id":3945,
"pub_date":"2016-05-30 00:00:00",
"title":"Trio to tour on back of Twickenham win",
"excerpt":""
}
},
答案 0 :(得分:1)
您需要使用 text()
来获取JSON内容,然后使用 JSON.parse()
对其进行解析。 data()
方法返回所有data-*
属性值的对象,而不是文本数据。
jQuery(document).ready(function(){
var data = JSON.parse(jQuery("#json").text());
console.log(data);
});
答案 1 :(得分:0)
虽然给出的答案解决了你的问题,但我想给你一个不同的答案:
将json directry存储为javascript var会更好。首先,您不必在以后获取它,其次,它绝不是将数据存储在html元素中的最佳选择。
所以我建议这样做:
echo "<script>jsonData=" . json_encode($response) . ";</script>";
然后没有必要从html中的字符串中获取和转换它....
以后你可以访问它(在你宣布它之后的任何地方):
<script>
console.log(jsonData);
</script>