2016-11-26 71 views
0

我想將一個參數傳遞給另一個頁面,但事實證明它是未定義的。變量和字符串的連接錯誤

getAccount()返回一個json列表。首先,我在HTML上逐個顯示這些json對象,當用戶單擊它們時,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');' – Mahi

+0

不要寫代碼喜歡這個。不要將HTML構建爲巨大的字符串。使用模板語言或某種框架。 – 2016-11-26 07:07:22

回答

0

onclick處理器將是字面上getAcc(accDetail[i].accNo)(嘗試觀看在檢查元素),因爲accDetail沒有在事件處理程序中定義,這將無法正常工作。您需要更改您的Javascript,以便它寫入getAcc(0),getAcc(1)等,其中0,1是不同的accNo

這裏是一個小例子,我寫了,希望你可以擴展它來解決你的問題:

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

爲什麼op沒有收到消息'localStorgae沒有定義' – Mahi

+0

感謝您指出它,我解決了它,但仍然是未定義的。 – jekaterina

+0

@jekaterina我做了一個編輯。 – Rishav

0

首先確保你的功能得到正確的值

嘗試使用窗口對象,而不是

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

Replace with 

function getAcc(item)
{
console.log(item); // 請檢查您的項目是否正確無誤
window.accNo = item;
}

而徘徊無論你只想使用window.accNo