如何显示来自api的数据

问题描述 投票:-1回答:1

我正在网页上显示来自API的一些数据,但是我想在手风琴中显示它们。

我想要一张幻灯片上每个故事的标题,出版日期,图像和摘要,所以基本上每个手风琴幻灯片上都有一个故事。

我该怎么做?JS

let html = [];
fetch('https://api.nytimes.com/svc/topstories/v2/technology.json?api-key='*')
  .then((resp) => resp.json())
  .then(function(data) {

    data.results.slice(0, 4).forEach(res => {
      html.push(`<h1>${res.title}</h1>`);
      html.push(`<p>${res.url}</p>`);
      html.push(`<p>${res.abstract}</p>`);
      html.push(`<p>${res.published_date}</p>`);
      html.push(`<image>${res.multimedia[4]}</image>`);
    })

    document.getElementById("res").innerHTML = html.join("");
  })

HTML

    <body>
        <h1>Top Stories</h1>
            <button class="accordion">Story 1</button>
            <div class="panel">
              <p>Lorem ipsum...</p>
            </div>

            <button class="accordion">Story 2</button>
            <div class="panel">
            </div>

            <button class="accordion">Story 3</button>
            <div class="panel">
               <p>hi</p>
            </div>
            <button class="accordion">Story 4</button>
            <div class="panel">
            </div>
            <div id="res"></div>
    </body>
javascript accordion
1个回答
0
投票

制作手风琴的最简单方法可能是使用HTML <details>标记,如果需要,可以使用CSS使它看起来更好。

<details>

这在大多数现代浏览器中都有效,但是Edge和Internet Explorer都不支持。

[如果您想创建自定义手风琴(或需要支持Edge或IE),则互联网上有很多教程,当我在Google上搜索“ js手风琴”时,至少会出现两个主要的网页设计库。] >


如果卡住的部分只是将数据放入页面,请查看<details> <summary>Summary</summary> <p>Details</p> </details>

阅读完之后,这是一个示例,它产生了与我上面给出的示例相同的示例:

Mozilla's tutorial on DOM manipulation
let accordion = document.querySelector('#accordion'),
    element = document.createElement('details'),
    header = document.createElement('summary'),
    paragraph = document.createElement('p');
      
paragraph.textContent = 'Details';
header.textContent = 'Summary';

element.appendChild(header);
element.appendChild(paragraph);
accordion.appendChild(element);
© www.soinside.com 2019 - 2024. All rights reserved.