javascript - 在 ajax 响应中加载列表对象并使用此数据创建动态列表 div
问题描述
我有这部分 HTML:
<div class="container">
<div class="row">
<div class="col-sm-4">
<div class="card">
<div class="card-body">
<h4 class="card-title">{title}</h4>
<p class="card-text">{content}</p>
<a href="#" class="card-link">Read...</a>
</div>
</div>
</div>
</div>
</div>
我有在页面加载后调用的 ajax 请求:
<script>
$(window).on('load', function () {
loadArticles();
});
function loadArticles() {
$.ajax({
dataType: "json",
url: "/articles", success: function (result) {
}
});
}
</script>
我需要<div class="card">
使用来自响应的数据创建卡片列表()。例如,我收到 5 篇文章作为回复。我需要创建 5 个卡片 div 并从响应中填充其数据。我该怎么做?
解决方案
遍历从 ajax 调用返回的对象,并使用 jQuery .append() 函数将它们添加到 dom。
首先,您需要向 HTML 中的父 div 添加一个标识类(或 id)并删除卡片 HTML:
<div class="container">
<div class="row">
<div class="col-sm-4 cards-wrapper"></div>
</div>
</div>
然后在您的 loadArticles 函数中循环遍历您的 ajax 响应并附加到我们刚刚定义的 jQuery 选择 - '.cards-wrapper':
function loadArticles() {
$.ajax({
dataType: "json",
url: "/articles",
}).done(function(data) {
const cards = data.body.cards; // Or however you need to traverse the response object
cards.forEach(function(card) {
$('.cards-wrapper').append('<div class="card"><div class="card-body"><h4 class="card-title">' + card.title + '</h4><p class="card-text">' + card.content + '</p><a href="#" class="card-link">Read...</a></div></div>');
})
});
}
理想情况下,您应该将该附加代码提取到它自己的函数中以提高可读性等。
推荐阅读
- unit-testing - 提供“未定义”值的 React-redux 模拟商店
- asp.net-core - BackgroundService 可以在 ASP .NET Core 3.1 中无限期运行吗?
- objective-c - Objective-C:getNotificationSettingsWithCompletionHandler 从完成处理程序分配给变量。如何?
- video - Windows 媒体基础 2D 缓冲区
- java - 预期状态:<200> 但在 JUnit4 spring boot 2 测试中为:<404>
- java - Android build.gradle 文件中的错误:找不到 com.android.support:appcompat-v7:29.0.0
- r - 在 RStudio 中绘制递增的日期
- javascript - 使用 date-fns 2.x 版时,如何将日期时间格式化为 am/pm,不带句点?
- reactjs - 是否可以在重定向之前预渲染?
- javascript - 在页面加载时触发更改事件