【问题标题】:display all json data with bootstrap card in a dynamic div using jquery使用 jquery 在动态 div 中显示所有带有引导卡的 json 数据
【发布时间】:2021-05-01 11:12:06
【问题描述】:

我仍然在这里学习 ajax、jquery 和 js。所以在这个问题中,我想获取 json 数据并将每个数据动态地显示到 div id="card-body" 每个 ID 中,但是它似乎我的代码不起作用,因为结果只显示一个包含所有数据的 div。是否有任何建议可以在此处的代码中添加或更改?

<div class="container">
    <div class="card">
        <div class="card-header">
        </div>
        <div class="addDiv">
            <div id="card-body">
            </div>
        </div>
    </div>
</div>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js"></script>
    <script>

        $(function () {
            $.ajax({
                url: "https://jsonplaceholder.typicode.com/posts",
                success: function (result) {
                    $.each(result, function (index, item) {
                        var userId = item.userId;
                        var typeId = item.id;
                        var titleId = item.title;
                        var bodyId = item.body;
                        var $info = $("<p/>").html("user id: " + userId + "<br>"
                            + "id: " + typeId + "<br>"
                            + "title: " + titleId + "<br>"
                            + "body: " + bodyId);

                        var html = '<div id="card-body>';

                        for (let i = 0; i < $(result).length; i++) {
                            const element = $(result)[i];
                        }

                            html += '</div>';

                            $(".addDiv").append(html);

                        $("div#card-body").append($info);
                    });
                    // console.log('success', result);
                    // console.log(result[0].body);
                    // console.log($(result).length);
                }
            });
        });
    </script>

【问题讨论】:

  • 您需要在关闭它之前将您正在构建的 html var 与 $info 连接起来,然后将其附加到 .addDiv。 ID 只能使用一次,它们是唯一标识符,请改用类。

标签: javascript html jquery json ajax


【解决方案1】:
for (let i = 0; i < $(result).length; i++) {
  const element = $(result)[i];
}

这里要做什么?

或者你的意思是这个? --- 更新

$(function() {
  $.ajax({
    url: "https://jsonplaceholder.typicode.com/posts",
    success: function(result) {
      var container = $("div#list");
      $.each(result, function (index, item) {
        var userId = item.userId;
        var id = "card-body-" + userId;
        var el = $('div#' + id)
        console.log(el)
        var typeId = item.id;
        var titleId = item.title;
        var bodyId = item.body;
        var $info = $('<div>').html(
          "user id: " + userId + "<br>" +
          "id: " + typeId + "<br>" +
          "title: " + titleId + "<br>" +
          "body: " + bodyId
        );
        if (!el.length) {
          // not found, create new one
          el = $('<div id="' + id + '">')
          container.append(el)
        }
        el.append($info)
      });
    }
  });
});

【讨论】:

  • 糟糕,我忘了整理循环...我的意思是让 div 变得动态,所以在我获取数据 json 后,它会将每个用户 ID 分隔到每个 div 中(例如: userID : 1 in "div id=card-body" , userID : 2 in "div id=card-body-2" 等等)抱歉打扰你了,我自己有点困惑如何在这里解释这个问题。 .
  • 抱歉回复晚了。它解决了我的问题,非常感谢您的帮助!
猜你喜欢
  • 2019-05-14
  • 1970-01-01
  • 1970-01-01
  • 2012-04-19
  • 2020-11-19
  • 2011-07-28
  • 2016-10-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多