无法定义getElementById变量

时间:2017-10-08 14:20:15

标签: javascript

我正在尝试通过使用javascript更改html元素来更新连接到该网站的人数。出于某种原因,如果我在其上设置变量,它不起作用,但如果我以原始方式(没有变量)它可以正常工作。

var users = document.getElementById('users').innerHTML;
users = connection.users;

↑不起作用

document.getElementById('users').innerHTML = connection.users;

↑工作

2 个答案:

答案 0 :(得分:3)

这不起作用,因为您将innerHTML设置为不是对象的变量。

这样做应该有效:

var users = document.getElementById('users');
users.innerHTML = connection.users;

答案 1 :(得分:1)

这种情况正在发生,因为分配给users的值是一个字符串 - 按值分配,即复制。它不是 对元素的innerHTML属性的保持活动引用。

如果要使用变量,请将其指定为元素,而不是其HTML。

var users_el = document.getElementById('users');
users_el.innerHTML = connection.users;

在JavaScript中,复杂对象通过引用复制,而简单数据类型按值复制,如您的情况。