从div收集动态文本并通过查询字符串传递它

时间:2015-02-05 13:48:33

标签: javascript php jquery html

我已经下载了这个模板,它基本上是python中Tornado的网络聊天室:https://github.com/nellessen/Tornado-Redis-Chat

我试图从“messsages”div中获取所有消息,并通过查询字符串将其作为变量'msgs'传递。 我使用查询字符串的原因是因为POST函数无法在github项目中实现,我无法通过JSON块传递数据,因为我不知道如何开始。一次msgs在querystring上传递,通过PHP意味着,我能够在一个名为'message log'的页面上回显消息。

我尝试了以下内容:

var msgs = document.getElementById("messsages").innerHTML

但是这只会得到包括div id,样式等在内的所有内容,而不仅仅是文本内容。当我在消息日志页面上尝试了.textContent或.text时,我得到一个空白页面或显示“未定义”的页面。我认为“未定义”的问题可能是因为变量msgs没有将其值更新为在messsages div上发布的消息。

有什么建议吗?

JS触发了在页面上查看的信息

showMessage = function(message) {
    console.log("Show Message");
    var existing = $("#m" + message._id);
    if (existing.length > 0) return;
    $("#messsages").append('<div class="message" id="' + message._id + '">' + message.body + '</div>');
    $('#messsages').find(".message:last").slideDown("fast", function(){
        $('html, body').animate({scrollTop: $(document).height()}, 400);
    });
};

1 个答案:

答案 0 :(得分:1)

如果您要从中获取多条#messages条消息,则无法使用<div>的ID。相反,使用班级.messages

因为你标记了jQuery,我假设你愿意使用它,而.each()是一个循环遍历每个选择元素的函数,所以像这样:

var msgs = []; // initialize array
$('.messages').each(function() {
    msgs.push($(this).text()); // add the text in this specific message div into the array
});

如果只需要一个长字符串,则构造一个字符串而不是数组。