我在控制台中设置了以下内容:
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;
时,它给了我新的输出。
这是为什么?有没有一种方法让我分配一个变量,用我的元素相应地更新它的值?
答案 0 :(得分:2)
尝试使用IIFE
var convo = function convo() {
return (function(elem) {
return elem.textContent
}(document.getElementById("messages"))
};
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;