javascript - getting undefined when trying to fetch data from api and change innerHTML. data shows on console but not in html page
问题描述
const buildPosts = (blogPosts) => {
let blogPostsContent = "";
for (blogPost of blogPosts) {
const postDate = new Date(blogPosts.added_date).toDateString();
blogPostsContent += `
<div class="post">
<div class="post-img"></div>
<div class="post-content">
<div class="post-date">${postDate}</div>
<div class="post-title"><h4>${blogPosts.title}</h4></div>
<div class="post-text">${blogPosts.content}</div>
</div>
</div>
`;
}
document.querySelector(".blog-posts").innerHTML = blogPostsContent;
};
解决方案
Since it's for (blogPost of blogPosts)
, you should access in the inner loop as blogPost
instead of blogPosts
.
Reference: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of
const blogPosts = [
{
added_date: '2021-01-01T05:07:59Z',
title: 'Title1',
content: 'Content1'
},
{
added_date: '2021-01-02T05:07:59Z',
title: 'Title2',
content: 'Content2'
}
];
let blogPostsContent = "";
for(blogPost of blogPosts) {
const postDate = new Date(blogPost.added_date).toDateString();
blogPostsContent += `
<div class="post">
<div class="post-img"></div>
<div class="post-content">
<div class="post-date">${postDate}</div>
<div class="post-title"><h4>${blogPost.title}</h4></div>
<div class="post-text">${blogPost.content}</div>
</div>
</div>
`
}
document.querySelector('.blog-posts').innerHTML = blogPostsContent;
.post {
border: 1px solid red;
}
<div class="blog-posts"></div>
推荐阅读
- javascript - 根据用户输入对 json 数据进行排序
- java - 将 JScrollPane 添加到由 TableModel 初始化的 JTable 时出现问题
- docker-compose - 无法将消息从 dapr 发布 url 发布到 rabbitmq 交换
- python - So I'm Facing A Issue Here, During Calculating The Data Its Ignoring Decimal And Just Calculating The Integer, 10*11.50 Should Be 115
- python-3.x - IntegrityError:django 中的 FOREIGN KEY 约束失败
- c++ - 没有要调用的匹配函数,使用 std::thread
- javascript - jQuery .find() 找不到
- python - ModuleNotFoundError:没有名为“h2oaicore”的模块
- spring - 根据业务逻辑屏蔽字段值的最佳方法是什么
- razor - 如何在 ASP .NET Core MVC Web 应用程序中制作 .cshtml 弹出窗口