現在、JavaScriptのみでページネーションを作成しています。
問題は、liタグを作成する変数liを定義しappendChild('li')によってブラウザに表示させたいのですが、最後の要素のみ追加されてしまうということです。
初学者ゆえ初歩的な質問かもしれませんが、わかる方がいたらご教授お願いいたします。
---以下コード---
html
1<p class="title">Menu</p> 2 <ul id="page_count"></ul> 3 <ul id="contents"></ul> 4 <ul class="pagination"> 5 <li id="prev"><</li> 6 <li>1</li> 7 <li>2</li> 8 <li>3</li> 9 <li id="next">></li> 10 </ul>
css
1body { 2 font-size: 50px; 3 text-align: center; 4 margin: 0 auto; 5} 6 7.pagination { 8 display: flex; 9} 10 11li { 12 list-style: none; 13 margin-left: 5px; 14 margin: 0 auto; 15} 16 17.title { 18 font-size: 70px; 19}
js
1const items = [ 2 {"id": 1, "name": "salad"}, 3 {"id": 2, "name": "olive_oil"}, 4 {"id": 3, "name": "vinegar"}, 5 {"id": 4, "name": "sesami"}, 6 {"id": 5, "name": "chicken_soup"}, 7 {"id": 6, "name": "flour"}, 8 {"id": 7, "name": "sesami"}, 9 {"id": 8, "name": "salt"}, 10 {"id": 9, "name": "pepper"}, 11 {"id": 10, "name": "coffee"}, 12 {"id": 11, "name": "short_cake"}, 13 {"id": 12, "name": "cheese_cake"}, 14 {"id": 13, "name": "pudding"}, 15 {"id": 14, "name": "pafe"}, 16 {"id": 15, "name": "apple_pie"}, 17 {"id": 16, "name": "humberger"}, 18 {"id": 17, "name": "chocolate"}, 19 {"id": 18, "name": "fruit"}, 20 ]; 21 22 23 const pagination = () => { 24 let li = document.createElement('li'); 25 const page_count = document.getElementById('page_count'); 26 const contents = document.getElementById('contents'); 27 let current_list = 0; 28 const step = 5; 29 const pages = Math.ceil(items.length/5); 30 31 //ページ・コンテンツ数 <== ここも無視されてしまう 32 page_count.appendChild(li).innerHTML = (current_list + 1) + "/" + pages + " " + "page" + "コンテンツ数: " + step; 33 34 35 const viewItems = value => { 36 for (let i = 0; i < value.length; i++) { 37 // console.log(value[i].name); <==ここではすべてのnameが取得できている 38 contents.appendChild(li).innerHTML = value[i].name; 39 } 40 } 41 42 viewItems(items); 43 //ここでitemsのfruitのみ表示される 44 45 // contents.appendChild(li).innerHTML = viewItems(items); 46 } 47 48 window.onload = () => { 49 pagination(); 50 }
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/16 12:51