#javascript #html #css
#javascript #HTML #css
Вопрос:
У меня есть 100 сообщений с помощью Fetch API, все они у меня на одной странице. Я понятия не имею, как я могу создавать страницы, где на каждой странице я могу отображать только 10 сообщений.
Это мой код javascript:
fetch('https://jsonplaceholder.typicode.com/posts')
.then((res)=>res.json())
.then((data)=>{
let output = '<h2 class="posts"></h2>';
let i=0;
data.forEach(function(thePost){
output = `
<div style="background-color: gray;margin-
right:60px;width:300px;height:350px;border-radius: 30px;display:
inline-block;overflow: hidden;" class="post" id=item${i}>
<h3 style="padding:10px;color:white;">${thePost.title}</h3>
<p style="padding:10px;color:white;">${thePost.body}</p>
</div>
`;
i ;
//if (i==3){`<br> <br>`}
});
document.getElementById('posts').innerHTML=output;
});
Ответ №1:
Есть много способов добиться этого.
Способ 1
Вы можете объединить массив и получить только первые 10 элементов с помощью splice
метода
data = data.splice(0, 10);
Полный код
fetch('https://jsonplaceholder.typicode.com/posts')
.then((res)=>res.json())
.then((data)=>{
let output = '<h2 class="posts"></h2>';
let i=0;
data = data.splice(0, 10);
data.forEach(function(thePost){
output = `
<div style="background-color: gray;margin-
right:60px;width:300px;height:350px;border-radius: 30px;display:
inline-block;overflow: hidden;" class="post" id=item${i}>
<h3 style="padding:10px;color:white;">${thePost.title}</h3>
<p style="padding:10px;color:white;">${thePost.body}</p>
</div>
`;
i ;
//if (i==3){`<br> <br>`}
});
document.getElementById('posts').innerHTML=output;
});
Способ 2 :
Вы можете использовать разбивку на страницы, предоставляемую jsonplaceholder, которая позволяет вам получать только n
записи в данный момент page
.
для этого вы можете добавить некоторые параметры строки запроса к вашему запросу следующим образом :
https://jsonplaceholder.typicode.com/posts?_page=0amp;_limit=10
Полный код
fetch('https://jsonplaceholder.typicode.com/posts?_page=0amp;_limit=10')
.then((res)=>res.json())
.then((data)=>{
let output = '<h2 class="posts"></h2>';
let i=0;
data.forEach(function(thePost){
output = `
<div style="background-color: gray;margin-
right:60px;width:300px;height:350px;border-radius: 30px;display:
inline-block;overflow: hidden;" class="post" id=item${i}>
<h3 style="padding:10px;color:white;">${thePost.title}</h3>
<p style="padding:10px;color:white;">${thePost.body}</p>
</div>
`;
i ;
//if (i==3){`<br> <br>`}
});
document.getElementById('posts').innerHTML=output;
});
Комментарии:
1. Спасибо, за первый способ, я не хочу просто получать 10 сообщений с помощью выборки, я хочу получить их все (100 сообщений), но размещая их по 10 на странице;
2. первый подход не подходит?
3. с помощью этого кода я просто получу 10 сообщений из API; но я хочу получить все сообщения, а затем разместить каждые 10 сообщений на странице. есть предложения?
4. вы можете хранить все записи в массиве, затем делать снимки с помощью метода и отображать их
5. как я могу сделать это с разбиением на страницы?