我正在创建一个网页,您可以在其中登录创建帐户,等等。但是,当我尝试描绘用户信息时,我收到错误'无法设置属性'innerHTML'为null'
当我使用:
在控制台中打印值时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>
将数据加载到JS中的div中的代码
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;
提前致谢。
答案 0 :(得分:2)
正如您在评论中提到的那样,它是名称而不是ID。尝试以下
document.getElementsByName("account_gender")[0].innerHTML = temp.gender;
检查document.getElementById(“account_gender”)是否为空。确保在页面底部添加标记。就在此之前 确保在运行脚本时加载所有元素。尝试按照以下方法进行调试。
document.addEventListener('DOMContentLoaded', function() {
alert(document.getElementById("account_gender"));
}, false);