前提・実現したいこと
Webページ上でメモを記録したいです。
しかしページをリロードしたら全て消えるもので、実用的なものである必要はなく、
フォームから入力した入力内容がブラウザ画面に反映されれば良いです。
追記:ローカルに保存なども必要なく、以下の形が再現することが目的です。
このような形です。
(「新しいメモ」→「次のメモ」の順に入力して投稿ボタンをクリックした状態)
発生している問題・エラーメッセージ
投稿ボタンをクリックするたびに毎回クラスを付与することで実現できるかと思い、
jsコード最後2行を記述していますが、インスペクターを見ると毎回子要素(?)になっています。
該当のソースコード
html
1 2<body> 3 <div class="title"> 4 <h1>メモが追加できます</h1> 5 </div> 6 <form> 7 <textarea id="textarea" rows="4" cols="40" placeholder="次のメモ"></textarea> 8 <button type="button" onclick="textcopy()">投稿</button> 9 <hr> 10 <div id="insert"> 11 </div> 12 </form> 13</body>
javascript
1function textcopy() { 2 // テキストエリアの内容を取得 3 var textarea = document.getElementById("textarea").value; 4 // テキストエリアの内容を消去 5 document.getElementById("textarea").value = ""; 6 // これまでに追加されたテキストとの連結を行う 7 textarea = document.getElementById("insert").innerHTML + textarea; 8 // "insert"のidが指定されたの要素の中に挿入 9 document.getElementById("insert").innerHTML = "<div>" + textarea + "</div>"; 10 let target = document.getElementById("insert") 11 target.classList.add("memo"); 12}
css
1.memo { 2 padding: 0.5em 1em; 3 margin: 2em 0; 4 /*文字色*/ 5 background: #FFF; 6 border: solid 4px rgb(244,212,155); 7 /*線*/ 8 border-radius: 7px; 9 /*角の丸み*/ 10} 11
試したこと
いろいろ調べた結果、
JavaScriptの中でidやclassといった属性を指定するには
element.setAttribute
を使用するのかと考えたのですが、MDNのリファレンスや他サイトを見てもよくわからず混乱しております。
どこが間違っているのかてんでわかりません。。。。
稚拙な質問をご容赦ください。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/25 17:43