Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.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 如何在API中单击时动态显示JSON数据?_Jquery_Html_Json_Ajax_Api - Fatal编程技术网

Jquery 如何在API中单击时动态显示JSON数据?

Jquery 如何在API中单击时动态显示JSON数据?,jquery,html,json,ajax,api,Jquery,Html,Json,Ajax,Api,我已经成功解析了TumblrAPI中的数据,直到我在主体描述中引入了标记。(包括图像、超链接等) 我实际上是在创建一个博客标题列表。根据单击的标题动态显示博客描述。我觉得这段代码因为引用的问题而中断,但我不确定如何解决这个问题 用完整代码演示问题 这只是一个部分错误: //... $.each(inner, function(i, obj) { title = inner[i].Title description = inner[

我已经成功解析了TumblrAPI中的数据,直到我在主体描述中引入了
标记。(包括图像、超链接等)

我实际上是在创建一个博客标题列表。根据单击的标题动态显示博客描述。我觉得这段代码因为引用的问题而中断,但我不确定如何解决这个问题

用完整代码演示问题

这只是一个部分错误:

      //...
      $.each(inner, function(i, obj) {

          title = inner[i].Title
          description = inner[i].Description

     // Source of the error
     // data-description includes an <a> tag that breaks the code
          $('<div class = "title-list" data-title = "<h3>' + title + '</h3>" data-description="' + description  + '">' + title + '</div>').appendTo(monthblogList)

        })
      })
    });

    function showBlogEntry(element){
      var t = $(element).data('title')
      var ds = $(element).data('description')

      blogEntry.empty()

      $(t).appendTo(blogEntry)
      $(ds).appendTo(blogEntry)
    }
}
但仍然不确定如何解决这个问题


我需要从
标题
描述
变量中获取信息,并根据用户单击的标题在单击时显示其数据。这是一个解决方案,尽管它可能不是最好的。如果除了
数据
标签之外还有其他解决方案,我们将不胜感激。提前谢谢

不要将数据存储在HtmlLevel的“data-”属性中,只需在javascript中保留对API JSON响应的引用,并将索引id存储在“data-”属性中(可能是“data post id”)

var blogData=[{Title:…,Description:…},…]//来自JSON响应的数据
...
...
$(''+标题+'')。附录(月日志列表);
...
...    
函数showBlogEntry(元素){
变量id=$(元素).data('post-id'))
var close=$('x')
blogEntry.empty()
$(关闭).appendTo(博客条目)
$(''+blogData[id].Title+'').appendTo(blogEntry)
$(blogData[id].Description).appendTo(blogEntry)
$(“#关闭”)。在(“单击”)上,函数(事件){
blogEntry.empty()
about.fadeIn()
});
}

这一逻辑是有道理的,但当我应用它时,它仍然有点问题。我可能没有正确定义postId,你能试着解释一下吗?或者在codepen/jfiddle上演示?编辑:我的代码笔中的变量jData被认为是blogData。我将“var postData”添加到JS文件的顶部,然后将该值缓存在“showBlogEntry”中供以后使用,同时将id(或者在本例中是数组索引)放在“data-post-id”中谢谢!仔细看之后,它就更有意义了。荣誉
if ($(description).has("a")) {
  // do something
}
var blogData = [{Title: .., Description: ...}, ...]; //Data from JSON Response

...
...

$('<div class = "title-list" data-post-id =' + postId +'>' + title + '</div>').appendTo(monthblogList);

...
...    

function showBlogEntry(element){
      var id = $(element).data('post-id')
      var close = $('<span id = close> x </span>')

      blogEntry.empty()

      $(close).appendTo(blogEntry)
      $('<h3>' + blogData[id].Title + '</h3>').appendTo(blogEntry)
      $(blogData[id].Description).appendTo(blogEntry)

      $("#close").on("click", function (event) {
        blogEntry.empty()
        about.fadeIn()
      });
    }