我想从JSON获取数据,但我不知道为什么不工作

时间:2017-06-13 09:36:04

标签: javascript jquery json ajax

function jsonParser(data) {
  $.each(data.dt.ld, function(k, v) {
    var title = v.titleContent;
    var img = v.image;
    var txt = v.textContent;      
});
}

$(document).ready(function() {
  $.ajax({
  type: 'GET',
  url: 'data.json',
  dataType: 'json',
  success: jsonParser
 });
 });

$(".btn_get").click(function() {
 $(".title_data).text();
});

点击var title后,如何从$('.title_data')中获取$('.btn_get')的值?

2 个答案:

答案 0 :(得分:3)

你错过了关闭你的"" :

$(".btn_get").click(function() {
 $(".title_data").text();
});

现在应该可以了 希望有所帮助

答案 1 :(得分:0)

根据我的理解 :您正在加载数据(一次),当文档准备就绪时,您希望随时访问此数据(例如单击按钮时) )。

第一个线索是你的JS不正确,你在限定符$(".title_data")上缺少引号。

第二个问题是,您希望将加载onReady的内容的结果与稍后的单击事件相结合。您需要将第一次调用的结果存储在缓存中(localStorage,sessionCache或全局变量),然后访问它:

var data= {}; // declare global cache

function jsonParser(data) {
  $.each(data.dt.ld, function(k, v) {
    var title = v.titleContent;
    var img = v.image;
    var txt = v.textContent;   

    data['title'] =  v.titleContent; // fill in all necessary properties to cache
    data['image'] =  v.image;
    data['content'] =  v.content;
});
}

$(".btn_get").click(function() {
 $(".title_data").text(data['title']); // read title from your cache
});

当您的请求需要时间处理时,这可能不起作用,并且用户在DOM准备好后立即单击bitton。