前提・実現したいこと
入力画面から移動してきた入力項目を確認画面でループを使うことで取得して、画面に出力させたいと考えております。同時に文字列として変数に代入したいと考えています。
ループさせる理由は、入力画面において、必要に応じて入力項目を増減できるようにしてあるためです。入力画面での項目増減は問題なく動いており、確認画面側でパラメータの遷移も下に記述したように問題なく受信できています。
現在起こっている問題で解決、(各keyごとのvalueをすべて出力したいのですが実際は、単に入っている項目数分のループを回るだけ(出力結果は一番最後のseiとmei のvalueが項目数分表示されるだけ)です。ここを修正したいと考えております。
受信したgetパラメータは次の通り
file:///D://index.html?sei=macbookpro&mei=apple&sei=dynabook&mei=toshiba
発生している問題・エラーメッセージ
期待している結果は
macbookpro
apple
dynabook
toshiba
実際の実行結果は以下の通り
dynabook
toshiba
dynabook
toshiba
dynabook
toshiba
dynabook
toshiba
dynabook
toshiba
dynabook
toshiba
ループの際の要素の取得と出力のさせ方で
解決方法をお持ちの方よろしくお願いします。
該当のソースコード
html
1<body> 2. 3. 4<div id="wrap"> 5<!-- ここに製品名と個数を表示させたい --> 6</div> 7 8</body> 9</html> 10 11
javascript/jQuery
1//getUrlVarsはネット上でよく見かけるものを使わせていただきました。 2function getUrlVars() { 3var vars = [], 4hash; 5var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); 6for (var i = 0; i < hashes.length; i++) { 7hash = hashes[i].split('='); 8vars.push(hash[0]); 9vars[hash[0]] = decodeURIComponent(hash[1]); 10//varsの中身を確認 11alert(vars[hash[0]]); //ここでの出力はhoge・meguro・ipad・3が順に出力される 12} 13return vars; 14} 15 16$(function () { 17var queryString = getUrlVars(); 18 19//問題の起きている箇所 getされたパラメータのvalueの取得がうまくいっていない 20for(var a of queryString){ 21$('.wrap').append('<div class="sei">製品名:</div><br>'); 22$('.sei').text(queryString.sei); 23$('.wrap').append('<div class="mei">個数:</div><br>'); 24$('.mei').text(queryString.mei); 25} 26 27// カンマ区切りで各valueをtextに格納する 繰り返しで配列に格納していきたい ここでも上の表示にロジックと同じように、一番最後の要素のみ表示される 28 29var text = new Array(); 30var i = 0; 31$.each(queryString, function(index,value){ 32//一番最後の要素でない限り、カンマをつける 33if( (i+1) != queryString.length){ 34qrCodeText = value + ","; 35}else{ 36qrCodeText = value; 37} 38i = i + 1; 39});
試したこと
$('.wrap').append('<div class="sei">製品名:</div><br>');
の代わりに
document.getElementByID(wrap)を使用してみましたが、
dynabook
toshiba
・
・
のループの回数が、変わっただけでした。
環境
ブラウザ:google chrome
OS : windows 7 32bit
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/04 03:27
2019/10/04 03:49