selectボックスのプルダウンに選択肢を追加できるようにするため、localStorageを使おうと思っています。
(コードは以下参照)
その際、localStorageに意図しないデータ(rack-mini-profiler
など)が入ってしまい、selectボックスのプルダウンに表示されてしまいます。
key | value |
---|---|
templates-・・・ | <script id="profilerTemplate" type="text/x-jquery-tmpl">・・・ |
これを分離して、入力したデータだけプルダウンに表示させる方法があればご教示いただきたいです。
また、JSを書き慣れていないため、以下のコードでもっとスマートに書ける部分があればご指摘いただけるとありがたいです。
ーーーーーー以下サンプルコードーーーーー
JavaScript
1<body> 2 <select name="test"id="test"></select> 3 <input type="text" id="input"> 4 <input type="button" id="add" value="追加"> 5 6 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> 7 <script> 8 $(function() { 9 // 「追加」ボタンでlocalStorage/selectに追加 10 $("#add").click(function() { 11 var input = $("#input").val(); 12 localStorage.setItem(`"${input}"`, input); 13 14 var item = localStorage.getItem(`"${input}"`); 15 $("#test").append( 16 `<option value="${item}" selected>${item}</option>` 17 ); 18 }); 19 20 // localStorageに保存したデータをoptionに表示 21 keys = Object.keys(localStorage); 22 for(i = 0; i < keys.length; i++) { 23 var getItem = localStorage.getItem(keys[i]); 24 var selectTag = document.getElementById("test"); 25 selectTag.insertAdjacentHTML( 26 "beforeend", 27 `<option value="${getItem}">${getItem}</option>` 28 ); 29 } 30 }); 31 </script> 32</body>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/29 05:59
2019/07/29 06:04
2019/07/29 08:46 編集