无法设置null控制台的属性'innerHTML'正确看到值

时间:2017-01-24 09:44:13

标签: javascript html

我正在创建一个网页,您可以在其中登录创建帐户,等等。但是,当我尝试描绘用户信息时,我收到错误'无法设置属性'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;

提前致谢。

1 个答案:

答案 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);