jQuery - ajax成功函数中的变量

fearum 发布于 2019-10-09 ajax 最后更新 2019-10-09 22:59 11 浏览

我对jQuery非常陌生,并且希望在$(data.name)的成功函数中使用变量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"
  }
}
已邀请:

wrerum

赞同来自:

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

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函数。这不仅仅是对函数的每个成员执行某些操作,而只是检查您感兴趣的成员是否存在,如果存在,则从中获取值并填充页面。

liste

赞同来自:

我想到了。我能够使用[]$(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);
    });
  }
});