gpt4 book ai didi

javascript - 通过单击另一个页面上的元素来加载一个页面中的特定 JSON 数据

转载 作者:行者123 更新时间:2023-12-02 21:35:18 25 4
gpt4 key购买 nike

我想通过单击另一个 HTML 页面上的按钮,仅使用 jQuery 和纯 JS 将特定数据从 JSON 加载到特定 HTML 页面。示例:

第一个 HTML 页面,首先我需要在 id="products"元素中显示 JSON 中的所有产品:

<body>
<div id="products"></div>


<script src="https://code.jquery.com/jquery-3.4.1.js"></script>
<script src="js/app.js"></script>
</body>

第二个HTML页面,当点击第一个HTML页面上的任何产品时,该产品的规范需要显示在第二个HTML页面上。

<body>
<div id="productDescription">

</div>

<script src="js/app.js"></script>
</body>

这是示例 JSON 文件:

[
{
"name" : "Asus",
"model" : "laptopModel",
"price" : 100000
},
{
"name" : "HP",
"model" : "laptopModel",
"price" : 90000
}
]

感谢您的帮助,我需要这个用于学校项目,这就是为什么我只能使用 JS 和 JSON。

最佳答案

由于浏览器安全问题,您只能从托管的 JSON 文件 (http/https) 中读取该文件,因此这不适用于本地运行的“file://”内容。

第一个函数下载 json 文件,然后将其转换为 JavaScript 数据结构,然后将其交给第二个函数,该函数构建适当的内容并将其添加到页面。

const getPage = whichPage => {
return fetch("path/to/yourfile.json")
.then(response => response.json())
.then(data => buildPage(whichPage, data))
.catch(error => console.error(error));
};

const buildPage = (whichPage, products) => {
if (whichPage === "products") {
// do something with products to display a list of products
products.forEach(p => console.log(p));
} else {
let product = products.find(p => p.name === whichPage);
if (product) {
// do something with product to display details
console.log(product);
} else {
console.error("product not found [" + whichPage + "]");
}
}
};

getPage("products");

// or
// getPage("Asus");

// or
// getPage("products").then(() => getPage("Asus"));

关于javascript - 通过单击另一个页面上的元素来加载一个页面中的特定 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60515832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com