为动态元素创建javascript变量

时间:2015-02-02 07:06:34

标签: javascript

我有一个包含用户发送的邮件更新的div。我如何为这个div分配一个javascript变量,以便它的值始终是div的当前内容,它一直用消息更新?

var x = document.getElementById("MessageBox"); // only equals value at the 
// time rather than present value

2 个答案:

答案 0 :(得分:4)

实现此目的的最简单方法是为元素分配.onchange事件处理程序,然后将节点的值分配给函数范围之外的变量:

var myMSGvalue;
document.getElementById("MessageBox").onchange = function () {
    myMSGvalue = this.value;
    // this will work for <input>, not <div>
}

如果您确实需要将数据分配给html元素,则应使用<input type="hidden">

但是,在将数据附加到页面之前将数据分配给变量要好得多。例如,假设您有一个Web套接字:

var messages = [];
socket.on("msg", function (msg) {
    messages.push(msg);
    // msg: { content: "Hello!", author: "notSure" };
    functionToAppendToPage(msg);
})

现在,您可以看到messagesmessages[messages.length - 1]中收到的所有邮件都会返回收到的最后一条邮件(前提是至少收到一条邮件)。

答案 1 :(得分:3)

如果您的消息框字段使用任何Api或Ajax获取数据。您可以在将值分配给消息框之前更新变量。