我正在尝试通过使用javascript更改html元素来更新连接到该网站的人数。出于某种原因,如果我在其上设置变量,它不起作用,但如果我以原始方式(没有变量)它可以正常工作。
var users = document.getElementById('users').innerHTML;
users = connection.users;
↑不起作用
document.getElementById('users').innerHTML = connection.users;
↑工作
答案 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中,复杂对象通过引用复制,而简单数据类型按值复制,如您的情况。