Javascript变量不更新其值

时间:2015-02-01 14:47:59

标签: javascript jquery html

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

document.getElementById('messsages').textContent;

给了我输出"this is a message i sent through websocket chat!"

然后我做了

var convo = document.getElementById('messsages').textContent;

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

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

1 个答案:

答案 0 :(得分:2)

尝试使用IIFE

var convo = function convo() {
                return (function(elem) { 
                    return elem.textContent 
                }(document.getElementById("messages"))
            };

另见MutationObserver



setInterval(function() {
 var arr = "abcdefg".split("");
 var i = 1 + Math.floor(Math.random() * arr.length -1);
 document.getElementById("messages").textContent = arr[i];
}, 2000);

var convo = function convo() {
  return (function(elem) {
    return elem.textContent
  }(document.getElementById("messages")))
};

document.addEventListener("click", function() {
  console.log(convo())
});

click
<div id="messages"></div>
&#13;
&#13;
&#13;