2016-11-26 15 views
0

別のページに引数を渡したいが、それは未定義であることがわかる。変数と文字列の連結が正しくない

getAccount()はjsonのリストを返します。まず、これらのjsonオブジェクトをHTMLで1つずつ表示し、ユーザーがそれぞれをクリックすると、accDetail [i] .accNoはローカルストレージとして設定され、次のページに渡されます。

var accDetail=getAccounts(); 


for(var i =0;i<accDetail.length;i++) { 
    document.getElementById("demo").innerHTML+='<a href="accountdetails.html" onclick="getAcc('+accDetail[i].accNo+')">'+accDetail[i].accNo +'</a>'+' '+ accDetail[i].accType+' '+ accDetail[i].balance+'<br>'; 

}

これは、ローカルストレージとしての項目を設定する機能です。

function getAcc(item) 
{ 
    localStorage.setItem("accNo",item); } 

私はそれが間違って連結している方法ですか?

+0

試し 'のlocalStorage [ "accNo"]'や 'localStorage.getItem( 'accNo')を使用したいwhereever;' – Mahi

+0

は、コードを記述しないでくださいこのような。 HTMLを巨大な文字列として構築しないでください。テンプレート言語、または何らかのフレームワークを使用してください。 –

答えて

0

あなたonclickハンドラは、文字通りgetAcc(accDetail[i].accNo)(エレメントを点検で見てみてください)、accDetailは、イベントハンドラ内で定義されていないため動作しませんどのになるだろう。 getAcc(0)getAcc(1)など、0,1が異なるaccNoを書き込むようにJavaScriptを変更する必要があります。ここで

がうまくいけば、あなたの問題を解決するためにそれを拡張することができ、私が書いた小さな例です。

var accNo = [1, 2, 3, 4]; 
    for(var i = 0;i < accNo.length; i++) { 
    var line = '<a href="accountdetails.html" onclick="getAcc(' + accNo[i] + ')">' + accNo[i] + '</a> <br>'; 
    console.log(line); 
    document.getElementById("demo").innerHTML += line; 
    } 
+0

なぜオペアンプが 'localStorgae is not defined 'というメッセージを受け取れなかったのですか – Mahi

+0

それを指してくれてありがとう、私はそれを修正しましたが、未定義です。 – jekaterina

+0

@jekaterina私は編集をしました。 – Rishav

0

まず、あなたの関数が正しい値

ではなく

function getAcc(item) 
{ 
    localStorage.setItem("accNo",item); 
} 

Replace with 
をウィンドウオブジェクトを使用してみてください取得していることを確認します

function getAcc(アイテム)
{
console.log(item); // 項目が正しく定義されていないことを確認してください。
window.accNo = item;
}

そして、あなたはちょうどwindow.accNo

関連する問題