javascript - 如何使用 API 在不同的卡片上打印不同的标题?

标签 javascript jquery html bootstrap-4

我试图使用 jquery 和 javascript 将 jsonplaceholder 获得的不同标题打印到不同的卡片上

这是 HTML 部分:

<div class="album py-5">
                <div class="container">
                  <div class="row">
                    <div class="col-md-4">
                      <div class="card mb-4 box-shadow">
                        <div class="card-body">
                          <p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
                          <div class="d-flex justify-content-between align-items-center">
                            <div class="btn-group">
                            </div>
                          </div>
                        </div>
                      </div>
                    </div>

                    <div class="col-md-4">
                      <div class="card mb-4 box-shadow">
                        <div class="card-body">
                          <p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
                          <div class="d-flex justify-content-between align-items-center">
                            <div class="btn-group">
                            </div>
                          </div>
                        </div>
                      </div>
                    </div>

                    <div class="col-md-4">
                      <div class="card mb-4 box-shadow">     
                        <div class="card-body">
                          <p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
                          <div class="d-flex justify-content-between align-items-center">
                            <div class="btn-group">
                            </div>
                          </div>
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
              </div>

这是 JS:

//starts at 14:43, sat 21/9/2019

//jsonph

const url = 'https://jsonplaceholder.typicode.com/todos?_limit=3';

async function getDataFromCinemasAPI() {
    const response = await fetch(url);
    const data = await response.json();

    for (let i = 0; i < data.length; i--) {
        $('.card-text').html((data[i]["title"]));
    }    
}

getDataFromCinemasAPI();


但是我得到的结果是三张不同卡片的相同标题, 抱歉,html 很长:D

最佳答案

问题是您的代码在每次迭代时同时更新所有卡片,因此您最终看到的是所有卡片上的列表标题。您可以简单地执行以下操作:

$('.card-text').eq(i).html((data[i]["title"]));

尽管这不是最好的方法,因为您总是查询 DOM。一种优化是将卡片集合存储在变量中:

let cards = $('.card-text');

for (let i = 0; i < data.length; i++) {
    cards.eq(i).html((data[i]["title"]));
} 

关于javascript - 如何使用 API 在不同的卡片上打印不同的标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58097012/

相关文章:

javascript - meteor :意外的标记}

javascript - 除了嵌套for循环之外的多维js[数组的数组]的现代查询方法

jquery - 如何覆盖以前的 onClick css 类更改 (jQuery)

jquery - Bootstrap 3 每次折叠其他部分一个

javascript - 访问 canvas.ToBlob() 异步函数之外的 blob 值

javascript - 使用 JavaScript 删除两个评论标签之间的所有内容

javascript - map 功能值不显示

javascript - 如果端点既删除资源又创建资源,这仍然是惯用的 POST 吗?

html - 十六进制颜色在 Mac 上的 Chrome 和 Safari 之间显示不同

html - float 问题 - 当宽度大于页面宽度时 Div 下降