前提・実現したいこと
前回の質問同様todolistの簡単なアプリケーションを作成しています。
そして、tableを使用して表示させようとしているのですがうまくいきません。実現したいコードは以下の通りです。
<tr> <td>ID</td> <td>フォームで打ち込んだ内容</td> <td id="list_btn"><button>ボタン</button></td> </tr>
発生している問題・エラーメッセージ
現在はボタンが表示されない状態です。おそらくhtml内にlist_btnというidの要素が存在しないために表示されていないと思うのですが、jsファイルに
result += "<td>" + count + "</td>" + "<td>" + element +"</td>" + '<td id="list_btn">' + "</td>";
を記述しています。これではidつきのタグは作成できないのでしょうか?また、できない場合はどのように記述すればよいのかを教えていただきたいです。
該当のソースコード
html
1<body> 2 <h1>todo list</h1> 3 <div> 4 <input type="text" id="item"> 5 <button type="button" id='click-function'>Add</button> 6 </div> 7 8 <table> 9 <thead> 10 <tr> 11 <th>ID</th><th>コメント</th><th>状態</th><th></th> 12 </tr> 13 </thead> 14 <tbody id="list_item"> 15 16 </tbody> 17 </table> 18 <script src="index.js"></script> 19</body>
js
1const myfunc = document.getElementById('click-function'); 2let count = 0; 3result = ""; 4myfunc.addEventListener('click',function(){ 5 let todoItems = []; 6 let todoItem = document.getElementById('item').value; 7 todoItems.push(todoItem); 8 todoItems.forEach((element,index,array) => { 9 let btn_status = document.createElement('button'); 10 btn_status.textContent = "作業中"; 11 result += "<tr>"; 12 result += "<td>" + count + "</td>" + "<td>" + element +"</td>" + '<td id="list_btn">' + "</td>"; 13 result += "</tr>"; 14 document.getElementById('list_btn').appendChild(btn_status); 15 document.getElementById('list_item').innerHTML = result; 16 count++; 17 }) 18}) 19 20 21
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。