fetchで取得したデータquestions
をforEachで回してtr要素を作成し、tbody
の中にinsertAdjacentHTMLを使って挿入するという処理を行なっているのですが、下画像のように最初の子要素の上にundefinedが表示されてしまいます。何が原因なのでしょうか?分かる方いらっしゃいましたらご教授いただけると幸いです。
HTML
1<table class="table"> 2 <thead> 3 <tr> 4 <th scope="col">質問内容</th> 5 <th scope="col">回答A</th> 6 <th scope="col">回答B</th> 7 <th scope="col">コメント</th> 8 </tr> 9 </thead> 10 <tbody class="question-tbody"></tbody> 11</table> 12 13<script src="/javascripts/questions.js"></script>
JavaScript
1const tbody = document.querySelector('.question-tbody'); 2fetch(`/questions/json${window.location.search}`).then((response) => response.json()).then((data) => { 3 const { questions } = data; 4 let html; 5 questions.forEach((question) => { 6 const { 7 _id, 8 title, 9 ansA, 10 ansB, 11 numberOfComments, 12 } = question; 13 14 html += '<tr>'; 15 html += `<td><a class="widelink" href="/questions/${_id}${window.location.search}"></a>${title}</td>`; 16 html += `<td><a class="widelink" href="/questions/${_id}${window.location.search}"></a>${ansA}</td>`; 17 html += `<td><a class="widelink" href="/questions/${_id}${window.location.search}"></a>${ansB}</td>`; 18 html += `<td><a class="widelink" href="/questions/${_id}${window.location.search}"></a>${numberOfComments}</td>`; 19 html += '</tr>'; 20 }); 21 22 tbody.insertAdjacentHTML('beforeend', html); 23}); 24
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/20 18:25