gpt4 book ai didi

javascript - 将数据从 JSON 插入到 html 元素

转载 作者:行者123 更新时间:2023-11-30 15:02:52 24 4
gpt4 key购买 nike

我有包含 3 个对象的 JSON 文件:

[
{
"image": "assets/image.jpg",
"title": "Text",
"text": "Some text",
"date": "23/11/2013"
},
...
]

和 3 个 HTML 元素:

<div class="blog-post">
<img src="" class="blog-image"/>
<h2 class="blog-title"></h2>
<p class="blog-text"></p>
<div class="blog-date"></div>
</div>

我知道如何从 1 个对象获取数据到 1 个 html 元素:

((() => {
const getJSON = (url, callback) => {
const xhr = new XMLHttpRequest();
xhr.open('get', url, true);
xhr.responseType = 'json';
xhr.onload = () => {
const status = xhr.status;
if (status === 200) {
callback(null, xhr.response);
} else {
callback(status);
}
};
xhr.send();
};

const blogTitle = document.querySelector('.blog-title');
const blogText = document.querySelector('.blog-text');
const blogDate = document.querySelector('.blog-date');
const blogImage = document.querySelector('.blog-image');

getJSON('/test-data.json', (err, data) => {
if (err != null) {
return false;
} else {
blogImage.src = data.image;
blogTitle.innerText = data.title;
blogText.innerText = data.text;
blogDate.innerText = data.date;
}
});
}))();

但是我怎样才能循环遍历 json 文件中的所有对象并将数据插入到 html 元素中呢?

最佳答案

因此您的 JSON 文件将返回一个数组,我们可以像这样遍历该数组:

getJSON('./test-data.json', (err, data) => {
if (err != null) {
return false;
} else {
data.forEach(obj => {
createElements(obj);
});
}
});

那个createElements是我写的一个函数:

function createElements(obj) {
const mainDiv = document.createElement('div');
mainDiv.classList.add('blog-post');
const img = document.createElement('img');
img.classList.add('blog-image');
img.src = obj['image'];
const title = document.createElement('h2');
title.classList.add('blog-title');
title.innerHTML = obj['title'];
const text = document.createElement('p');
text.classList.add('blog-text');
text.innerHTML = obj['text'];
const date = document.createElement('div');
date.classList.add('blog-date');
date.innerHTML = obj['date'];
mainDiv.appendChild(img);
mainDiv.appendChild(title);
mainDiv.appendChild(text);
mainDiv.appendChild(date);
document.querySelector('body').appendChild(mainDiv);
}

非常冗长,但是这将为您的 JSON 数组中的每个对象添加一个新的 post 到 HTML 正文并具有正确的类。您可以更改 createElements 函数的最后一行,以将其附加到与正文不同的元素。

关于javascript - 将数据从 JSON 插入到 html 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46248701/

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