我有这个代码,我不知道有什么问题

时间:2017-03-03 15:10:06

标签: jquery json ajax



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

$(".btn_val1").click(function() {
  function jsonParser(json) {
    $.getJSON('data.json', function(data) {
      $.each(data.dt.ld, function(k, v) {
        var title = v.titleContent;
        var img = v.image;
        var txt = v.textContent;
        $('.information_g').append('<p>' + txt + '</p>');
      });
    });
  }
});
&#13;
&#13;
&#13;

运行脚本后,我收到此错误,我不知道问题所在:

  

未捕获的ReferenceError:未定义jsonParser

3 个答案:

答案 0 :(得分:4)

问题是因为您仅在jsonParser()点击处理程序的范围内定义了.btn_val1函数。它必须在$.ajax电话的范围内。

还要注意你的逻辑有点奇怪。您正在对data.json进行AJAX调用,然后在该请求的success处理程序中再次进行相同的调用。我建议您从$.getJSON()内删除jsonParser()来电。试试这个:

function jsonParser(data) {
  $.each(data.dt.ld, function(k, v) {
    var title = v.titleContent;
    var img = v.image;
    var txt = v.textContent;
    $('.information_g').append('<p>' + txt + '</p>');       
  });
}

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

$(".btn_val1").click(function() {
  // do something when this button is clicked...
});

答案 1 :(得分:1)

您的jsonParser位于$(".btn_val1").click内,因此只有在点击后才能访问 function jsonParser(json) { $.getJSON('data.json', function(data) { $.each(data.dt.ld, function(k, v) { var title = v.titleContent; var img = v.image; var txt = v.textContent; $('.information_g').append('<p>' + txt + '</p>'); }); }); } 。因此,您需要将其移出单击处理程序的范围。

var Twit = require('twit')

var T = new Twit({
    consumer_key:         '...',
    consumer_secret:      '...',
    access_token:         '...',
    access_token_secret:  '...'
})

答案 2 :(得分:0)

您尝试在定义之前传递函数。试试这个:

mydir <- "w:\\dir\\xx.doc"
print(mydir)
# w:\\dir\\xx.doc
cat(mydir)
# w:\dir\xx.doc
function jsonParser(data) {
  $.each(data.dt.ld, function(k, v) {
    var title = v.titleContent;
    var img = v.image;
    var txt = v.textContent;
    $('.information_g').append('<p>' + txt + '</p>');
  });
}

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

$(".btn_val1").click(function() {
  // should it also call ajax request?
});

相关问题