Jquery 如何在API中单击时动态显示JSON数据?
我已经成功解析了TumblrAPI中的数据,直到我在主体描述中引入了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[
标记。(包括图像、超链接等)
我实际上是在创建一个博客标题列表。根据单击的标题动态显示博客描述。我觉得这段代码因为引用的问题而中断,但我不确定如何解决这个问题
用完整代码演示问题
这只是一个部分错误:
//...
$.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()
});
}