【发布时间】:2018-09-08 01:27:00
【问题描述】:
我想在用户单击 html 链接时检索 JSON 对象。我想通过它的 ID 检索它并在 html 页面上显示对象中的所有内容。我也在使用会话存储.....我希望用户在点击 html 链接后被带到 info.html 页面。
到目前为止我的 html 代码:
<div class="col">
<!-- team-img -->
<div class="team-block">
<div class="team-content">
<h4 class="text-white mb0">Chocolate Cake </h4>
<p class="team-meta">Large</p>
</div>
<div class="overlay">
<div class="text">
<h4 class="mb0 text-white"> Chocolate Cake </h4>
<p class="mb30 team-meta"> Large </p>
<p>Large Chocolate cake. 15 servings.</p>
<p><a href="info.html" id="1">Further info</a></p>
</div>
</div>
</div>
</div>
在 JSON 文件中蛋糕的 ID 为“1”。我希望在用户单击链接时显示蛋糕的所有详细信息。我希望将用户带到 info.html。存储在 JSON 中的蛋糕数据应显示在那里。问题出在这一行:
<p><a href="info.html" id="1">Further info</a></p>
我的 JSON 文件名为 cakes.json
下面是我的 .js 文件
var ajax=function(url,success)
{
var ajaxRequest = new XMLHttpRequest();
var handleResponse=function()
{
if(ajaxRequest.readyState===4)
{
if(ajaxRequest.status===200)
{
var data=JSON.parse(ajaxRequest.responseText);
success(data); //this will call populateList
}
}
}
ajaxRequest.addEventListener("readystatechange",handleResponse,false);
ajaxRequest.open('GET', url, true);
ajaxRequest.send(null);
}
var navList;
var contentDiv;
function createHandler(car)
{
return function(){
sessionStorage.setItem("cake",JSON.stringify(cake));
}
}
function populateList(cakes)
{
navList=document.getElementById("nav");
contentDiv=document.getElementById("content");
cakes.forEach(function(cake){
var newLi=document.createElement("ul");
var newLink=document.createElement("a");
newLink.innerHTML=cake.name;
newLink.setAttribute("href","info.html");
newLink.addEventListener("click", createHandler(cake), false)
newLi.appendChild(newLink);
navList.appendChild(newLi);
})
}
function init(){
ajax("data/cakes.json",populateList);
}
init();
JSON 文件:
[
{
"id":1,
"cake":"chocolate cake",
"servings":"15",
"size":"10",
"code":"ed39"
},
]
任何帮助将不胜感激。
【问题讨论】:
-
你应该修改你在
a标签中发送的href以包含info.html?id=1(查询参数)并且在你的脚本中你应该检索这个id来获得所需的json值。 -
你应该有一个
function来解析json并检索所需id的信息,如果你可以把json放在这里,我可以帮助你 -
执行
sessionStorage.setItem("cake",JSON.stringify(cake))时没有cake -
您能更改我的代码并告诉我它是如何完成的吗?正如我之前尝试过但失败了。
-
我已经添加了我的 JSON 文件 Sabbin
标签: javascript html json