学校の課題で、javascriptを使ってlocalstrorageに多数のメールアドレスやパスワードをまとめて保存できるものをつくっています。
質問:数字が一つずつ増えていく以外には、コードの内容が同じ場合、どのような方法でまとめることができますか?(”//ボタンを押すとkeyとvalueが各テキストエリアに表示されるように”のところなどです。)
データを保存したり、クリックして呼び出すところまではできたのですが、単純なコードを繰り返している部分があり、もう少しうまくまとめたいと考えています。特にデータ量が増えた時などを考えたコードの書き方を学びたいです。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>myMemoPad</title> <script src="js/jquery-2.1.3.min.js"></script> <link rel="stylesheet" href="css/pass.css"> <script> $(function(){ //ボタン名を各keynameに var keyname_0 = localStorage.key(0); document.querySelector("#btn0").innerHTML = keyname_0; var keyname_1 = localStorage.key(1); document.querySelector("#btn1").innerHTML = keyname_1; var keyname_2 = localStorage.key(2); document.querySelector("#btn2").innerHTML = keyname_2; //ボタンを押すとkeyとvalueが各テキストエリアに表示されるように $("#btn0").on("click", function(){ var keyname_0 = localStorage.key(0); document.querySelector("#key_area").innerHTML = keyname_0; var Data0 = localStorage.getItem(localStorage.key(0)); var pmData0 = JSON.parse(Data0); vala = pmData0.pas; document.querySelector("#password_area").innerHTML = vala; valb = pmData0.mai; document.querySelector("#mail_area").innerHTML = valb; }); $("#btn1").on("click", function(){ var keyname_1 = localStorage.key(1); document.querySelector("#key_area").innerHTML = keyname_1; var Data1 = localStorage.getItem(localStorage.key(1)); var pmData1 = JSON.parse(Data1); vala = pmData1.pas; document.querySelector("#password_area").innerHTML = vala; valb = pmData1.mai; document.querySelector("#mail_area").innerHTML = valb; }); $("#btn2").on("click", function(){ var keyname_2 = localStorage.key(2); document.querySelector("#key_area").innerHTML = keyname_2; var Data2 = localStorage.getItem(localStorage.key(2)); var pmData2 = JSON.parse(Data2); vala = pmData2.pas; document.querySelector("#password_area").innerHTML = vala; valb = pmData2.mai; document.querySelector("#mail_area").innerHTML = valb; }); //テキストボックスでkeyとvalueを入れる $("#save").on("click", function(){ var keyname = $("#key_area").val(); var data = {pas:$("#password_area").val(),mai:valuem = $("#mail_area").val()} if (keyname.length == 0){ alert("サイト名を入力してください"); }else{ alert("保存しました"); localStorage.setItem(keyname, JSON.stringify(data)); $('#select').append($('<option>').html(keyname).val(value)); } }); }); </script> </head> <body> <header> <h1>Hard password recorder</h1> </header> <main> <p>サイト名</p> <textarea id="key_area" value="new"></textarea> <p>パスワード</p> <textarea id="password_area"></textarea> <p>メール</p> <textarea id="mail_area"></textarea> <div id="save">Save</div> <div id="clear">Clear</div> <p id="btn0"></p> <p id="btn1"></p> <p id="btn2"></p> </main> <footer><small></small></footer> </body> </html>
###試したこと
forやthisを使うことが鍵になりそうだと言うことはわかったのですが、今回の場合どのように関数をつくれば良いのか理解できませんでした。
どうぞよろしくお願いいたします。
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/12 22:00
2017/05/13 05:49