javascript - 在ajax响应中加载列表对象并使用此数据创建动态列表div

标签 javascript jquery ajax twitter-bootstrap

我有这部分 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>');
            }) 
        });
}

理想情况下,您应该将附加代码提取到其自己的函数中,以提高可读性等。

关于javascript - 在ajax响应中加载列表对象并使用此数据创建动态列表div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60459321/

相关文章:

javascript - 如何杀死页面的当前进程

javascript - 如何制作类似按钮的过滤器?

javascript - 你如何对 AngularFire 集合进行排序?

javascript - 删除所有属性

php - 修改AJAX PHP数据库示例

javascript - Angular + http服务 : POST & DELETE results?

javascript - jQuery append() 在 for 循环后用于多个元素而不展平为 HTML

javascript - 如何在 JQuery 中更改日期变量的颜色?

javascript - jQuery Cycle 中有没有办法检索参数?

php - PHP AJAX 后返回空数据