#javascript #html #api
Вопрос:
У меня есть проблема, и я был бы очень признателен, если бы кто-нибудь мог мне в этом помочь. Я новичок в javascript, и я сделал HTTP-запрос на сервер, чтобы получить некоторые данные, и теперь я хочу отобразить данные в div в HTML. Я попытался использовать createElement для отображения текста и изображения того, что я хочу видеть в HTML, но безуспешно. Кто-нибудь, пожалуйста, может мне помочь? Заранее спасибо, что уделили мне время.
код js
var displaySoccerApi = document.getElementById("socceApi");
const api_url =
"https://mysoccerapi.com";
// Defining async function
async function getapi(url) {
// Storing response
const response = await fetch(url);
// Storing data in form of JSON
var data = await response.json();
console.log(data);
// if (response) {
// console.log("data here");
// }
}
// Calling that async function
getapi(api_url);
HTML
<body>
<div id="soccerApi"></div>
</body>
Все, что я хочу, это показать данные из API в div в HTML с изображением и заголовком, которые предоставляет API. Кто-нибудь, пожалуйста, может мне помочь?
С уважением
Комментарии:
1. указанный URL-адрес не существует, и никто не знает структуру возвращаемых данных. Пожалуйста, добавьте достаточно подробностей, чтобы другие могли получить ответ
2. Привет, спасибо за ваше сообщение. Данные из API являются локальными, и это просто массив с объектами, который имеет 2 ключа, 1 заголовок, 1 img, что-то вроде этого: const soccer = [ { img: » demo.jpg «, название: «Футболист», },
Ответ №1:
Предполагая, основываясь на вашем комментарии, что возвращаемые данные имеют форму:
response=[
{title:'Hello World',img:'/images/image1.jpg'},
{title:'Goodbye World',img:'/images/image2.jpg'},
{title:'Other text',img:'/images/image3.jpg'}
];
простая forEach
петля
response.forEach( obj=>{
/*
create new DOM elements
*/
let div=document.createElement('div');
let h1=document.createElement('h1');
let img=new Image();
div.append(h1);
div.append(img);
/*
assign content from api data
*/
h1.innerHTML=obj.title;
img.src=obj.img;
/*
add to DOM
*/
displaySoccerApi.append( div );
})
Например: Рабочий фрагмент, чтобы показать, возможно, как использовать вышеуказанное
var displaySoccerApi=document.getElementById('socceApi');
var response=[
{title:'West Bromwich Albion',img:'https://assets-sports.thescore.com/soccer/team/78/logo.png'},
{title:'West Ham United',img:'https://assets-sports.thescore.com/soccer/team/65/logo.png'},
{title:'Manchester City',img:'https://i2.wp.com/dxugi372p6nmc.cloudfront.net/ronaldo/current/256x256/8456/teamlogo.png'}
];
response.forEach( obj=>{
let div=document.createElement('div');
let h1=document.createElement('h1');
let img=new Image();
div.append(h1);
div.append(img);
h1.innerHTML=obj.title;
img.src=obj.img;
displaySoccerApi.append( div );
})
<div id='socceApi'></div>
Комментарии:
1. Большое спасибо за ваше время, я действительно ценю это. Хорошего вам дня впереди.
2. да, так оно и было. большое вам спасибо, я отметил ваш ответ как правильный. Огромное спасибо.