jQuery - ajax成功函数中的变量

时间:2017-04-23 03:04:54

标签: jquery ajax

我是jQuery的新手,并希望在成功函数中使用变量name,其中$(data.name)。反正有没有这样做?我要做的是,获取.html文件名,然后使用它从JSON文件中检索数据。

var url = window.location.pathname;
var filename = url.substring(url.lastIndexOf('/')+1);
var name = filename.replace('.html','');

console.log(name);

$.ajax({
  url: '../content.json',
  dataType: 'json',
  type: 'get',
  cache: false,

  success: function(data){
    $(data.name).each(function(index, value) {
      $("#title").text(value.title);
      $("#image").attr('src', value.image);
      $("#link").attr('href', value.link);
      $("#link").text(value.linktitle);
    });
  }
});

这是content.json

{
  "getting_started_in_photography_for_beginners" : {
    "short_title" : "photography",
    "id" : 1,
    "title" : "Getting started in Photography",
    "photo" : "asdfasdf",
    "link" : "fffsdfa"
  },
  "getting_started_in_filmmaking_for_beginners" : {
    "short_title" : "filmmaking",
    "id" : 2,
    "title" : "Getting started in Filmmaking",
    "photo" : "sgasdgw",
    "link" : "gssd"
  }
}

2 个答案:

答案 0 :(得分:0)

不完全确定这是你所追求的,但我认为它会做到这一点:

var url = window.location.pathname;
var filename = url.substring(url.lastIndexOf('/')+1);
var name = filename.replace('.html','');

console.log(name);

$.ajax({
  url: '../content.json',
  dataType: 'json',
  type: 'get',
  cache: false,

  success: function(data){
    if (data[name]) {
      $("#title").text(data[name].title);
      $("#image").attr('src', data[name].image);
      $("#link").text(data[name].linktitle)
                .attr('href', data[name].link);
    };
  }
});

您的Ajax查询获取content.json的内容,将其解析为JSON并将结果传递给您的success函数。这不仅仅是对函数的每个成员执行某些操作,而只是检查您感兴趣的成员是否存在,如果存在,则从中获取值并填充页面。

答案 1 :(得分:0)

我明白了。我能够使用[]$(data.name)

中包含变量

最终代码如下所示。

var url = window.location.pathname;
var filename = url.substring(url.lastIndexOf('/')+1);
var name = filename.replace('.html','');

console.log(name);

$.ajax({
  url: '../content.json',
  dataType: 'json',
  type: 'get',
  cache: false,

  success: function(data){
    $(data[name]).each(function(index, value) {
      $("#title").text(value.title);
      $("#image").attr('src', value.image);
      $("#link").attr('href', value.link);
      $("#link").text(value.linktitle);
    });
  }
});