2017-01-24 51 views
0

我正在製作一個網頁,您可以在其中登錄創建帳戶等等。然而,當我嘗試當我使用控制檯打印值刻畫用戶的信息出現錯誤無法設置null控制檯的屬性'innerHTML'正確地看到值

「空的‘’可以不設置屬性」的innerHTML:

console.log(temp.gender); 

它正確地顯示值女。這只是上面的非功能行代碼是:

document.getElementById("account_gender").innerHTML = temp.gender; 

我得到上面提到的錯誤。整個函數在window.onload中被激活,所以應該完成DOM樹。其他所有的價值似乎都有效。

我應該提到通過選項輸入選擇性別。我試圖以不同的方式提取值,但結果相同。所以現在它是:

gender = document.getElementById("signupgender").value; 

當用戶註冊。在HTML

代碼爲DIV

<div> 
    <h3> My information </h3> 
    <div id="account_info"><label>Email: </label><div id="account_mail"></div></div> 
    <div id="account_info"><label>Name: </label><div id="account_firstname"></div></div> 
    <div id="account_info"><label>Gender: </label><div id="account_gender"></div></div> 
    <div id="account_info"><label>City: </label><div id="account_city"></div></div> 
    <div id="account_info"><label>Country: </label><div id="account_country"></div></div> 
</div> 

代碼將數據裝入的div在JS

temp = serverstub.getUserDataByToken(token).data; 

console.log(temp.gender); 

document.getElementById("account_mail").innerHTML = temp.email; 
document.getElementById("account_firstname").innerHTML = temp.firstname + " " + temp.familyname; 
document.getElementById("account_gender").innerHTML = temp.gender; 
document.getElementById("account_city").innerHTML = temp.city; 
document.getElementById("account_country").innerHTML = temp.country; 

在此先感謝。

+2

你有ID爲'account_gender'的元素嗎? – Satpal

+0

問題不在於* value *,而在於你的dom元素引用。檢查一下Satpal在問什麼。 – DontVoteMeDown

+0

是的元素名稱是正確的,我有複製粘貼的div ID只是爲了確定。 – LuckAss

回答

2

正如您在評論中提到的那樣,它是名稱而不是ID。嘗試以下

document.getElementsByName("account_gender")[0].innerHTML = temp.gender; 

檢查的document.getElementById( 「account_gender」)不爲空。確保你在你的頁面底部添加你的標籤。在 之前確保在運行腳本時加載所有元素。請嘗試以下方法進行調試。

document.addEventListener('DOMContentLoaded', function() { 
    alert(document.getElementById("account_gender")); 
}, false); 
相關問題