todolistを作ろうとしています。
大体形になってきて、最後に、データを保持できるようにしようとしているのですが、うまくいきません。
html
1<ul id="todolist-a" class="todolist"> 2 <!-- todolistを追加 --> 3 </ul>
この<ul></ul>の中に<li>要素としてリストを追加していきます。
todoリストが追加、削除されたときに、子要素li(todoリスト)をすべてローカルストレージに保存したいです。
そしてリロードしても消えない状態にしたいです。
そのためにこのように書きました。
javascript
1let targeta = document.getElementById('todolist-a'); 2function example(){ 3 let dataa = document.getElementById("todolist-a"); 4 localStorage.setItem('key',dataa); 5} 6let moa = new MutationObserver(example); 7moa.observe(targeta,{childList: true}); 8 9let datada = localStorage.getItem('key'); 10console.log(datada);
ですがこれでコンソールに出てくるのは
[object HTMLUListElement]
という文字です。
**追記**
これは文字列ではないからということがわかりました。
保存できたら、window.onLoadで開いたときに保存されているデータを<ul></ul>の中にいれておきたいです。
<ul> <li><p>◉</p>文字列<i class="far fa-trash-alt gomi"></i></li> </ul>こんな感じで<ul>の中にどんどん追加されていきます
<p></p>の中のマーク(記号)もクリックで変更します。その変更も一緒にセットで保存したいです。 配列としてローカルストレージに保存するということは分かったのですが、配列に追加ができません。また、タスクとマークをセットにすることもできません。 どうしたらうまくいくのでしょうか***追記***
javascript
1 var datalocaltask = []; 2 var datalocalmark = []; 3 datalocaltask.unshift(newTask); 4 datalocalmark.unshift(lists.querySelector('p').innerText); 5 localStorage.setItem('key',JSON.stringify(datalocaltask)); 6 localStorage.setItem('keys',JSON.stringify(datalocalmark)); 7 console.log(JSON.parse(localStorage.getItem("key"))); 8 console.log(JSON.parse(localStorage.getItem("keys")));
としています。
pushなどは調べてやっていたのですが、配列にならなくて困っています。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/29 15:05
2019/10/29 15:08
2019/10/29 15:28
2019/10/29 21:23
2019/10/30 00:01 編集
2019/10/29 23:39
2019/10/30 00:07 編集
2019/10/30 00:15
2019/10/30 01:24
2019/10/30 03:01