Javascript变量未更新其值

Javascript变量未更新其值,javascript,jquery,html,Javascript,Jquery,Html,我在控制台中设置了以下内容: document.getElementById('messsages').textContent; 这给了我输出“这是我通过websocket聊天发送的消息!” 然后我做了 var convo = document.getElementById('messsages').textContent; 然后在控制台中键入corva,它给了我与以前相同的输出。然后,我通过websocket聊天发送了另一条消息,并输入了CONVA,它给了我旧的输出,但当我输入docume

我在控制台中设置了以下内容:

document.getElementById('messsages').textContent;
这给了我输出
“这是我通过websocket聊天发送的消息!”

然后我做了

var convo = document.getElementById('messsages').textContent;
然后在控制台中键入
corva
,它给了我与以前相同的输出。然后,我通过websocket聊天发送了另一条消息,并输入了CONVA,它给了我旧的输出,但当我输入
document.getElementById('Messages').textContent时它给了我新的输出

为什么会这样?有没有一种方法可以让我分配一个变量,并用我的元素相应地更新它的值?

尝试使用

另见

setInterval(函数(){
var arr=“abcdefg”.split(“”);
变量i=1+Math.floor(Math.random()*arr.length-1);
document.getElementById(“messages”).textContent=arr[i];
}, 2000);
var conva=函数conva(){
返回(函数(elem){
返回elem.textContent
}(document.getElementById(“消息”))
};
document.addEventListener(“单击”,函数(){
console.log(corva())
});
点击

不,没有,因为JS中的所有内容都是通过值传递的。相反,您可以使用具有getter/setter属性的对象?在你的例子中,有一个setter,一个getter只是一个返回
document.getElementById('Messages').textContent
的函数。因此,基本上,如果我在代码中粘贴以下内容,那么“conva”将始终等于包含动态内容的div“Messages”的当前值:
var COVA={set title(text){document.getElementById('messages')。textContent=document.title=text;}
@StackOverQuestions当然不是,您必须将自己的代码应用于setter结构。链接页面仅显示了setter的概念,它不是您问题的直接答案。嘿,它不起作用,我在控制台中得到错误“Conva未定义”。@StackOverQuestions如果可能,可以在OP发布试过的作品吗,创建stacksnippets,JSFIDLE来演示?
var convo = function convo() {
                return (function(elem) { 
                    return elem.textContent 
                }(document.getElementById("messages"))
            };