Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery-ajax成功函数中的变量_Jquery_Ajax - Fatal编程技术网

jQuery-ajax成功函数中的变量

jQuery-ajax成功函数中的变量,jquery,ajax,Jquery,Ajax,我对jQuery非常陌生,我想在success函数中使用变量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);

我对jQuery非常陌生,我想在success函数中使用变量
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"
  }
}

不完全确定这就是你想要的,但我认为它会起作用:

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
函数。与其对函数的每个成员都做些什么,不如检查您感兴趣的成员是否存在,如果存在,则从中获取值并填充您的页面。

不完全确定这是您想要的,但我认为它会起到作用:

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
函数。与其对函数的每个成员都做些什么,不如检查您感兴趣的成员是否存在,如果存在,则从中获取值并填充您的页面。

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

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

你能提供更多的细节吗?不清楚您想做什么,这里显示的是
$(data.name)
我想用变量
name
替换name。这有意义吗?请发布你的content.json文件,或者至少是一个小样本。正在尝试确定JSON是否包含以文件命名的成员。。。这就是您似乎在暗示的。看起来data.name是一个包含对象的json,所以您不能用字符串形式的name变量替换它。似乎您想在html的某些部分添加名称文本,可能是#title元素?你到底想在哪里看到名称值?坦白地说,这有点像一个例子。请更新您的问题并解释脚本的目的。您能提供更多详细信息吗?不清楚您想做什么,这里显示的是
$(data.name)
我想用变量
name
替换name。这有意义吗?请发布你的content.json文件,或者至少是一个小样本。正在尝试确定JSON是否包含以文件命名的成员。。。这就是您似乎在暗示的。看起来data.name是一个包含对象的json,所以您不能用字符串形式的name变量替换它。似乎您想在html的某些部分添加名称文本,可能是#title元素?你到底想在哪里看到名称值?坦白地说,这有点像一个例子。请更新您的问题并解释您脚本的目的。这需要做更多的工作,比需要的更脆弱,更难阅读,但这会起作用。您所做的基本上是这样的:“为数据[name]中存储的任何内容的每个成员运行此函数”。因为对于你拥有的数据来说,这是唯一的一个对象,所以你很好。这需要做更多的工作,比需要的更脆弱,更难读取,但这是可行的。您所做的基本上是这样的:“为数据[name]中存储的任何内容的每个成员运行此函数”。因为这是您拥有的数据的唯一对象,所以您很好。