在Javascript中直接插入兄弟之后的元素

时间:2013-07-21 03:51:21

标签: javascript append chat siblings

我正在建立一个发布系统,当用户输入消息时,它会创建一些元素并将其放在“机器人”聊天消息下面。如果用户输入两个不同的消息,则最新的输入消息高于另一个用户消息。我希望它们按时间顺序从上到下。

这似乎不起作用:( if / else部分)

function submitUserMessage(){

    var message = document.getElementById("user-input");

    if(message.value){

        // YOU
        var you = document.createElement("h4");
        var youText = document.createTextNode("You");
        you.appendChild(youText);
        you.className = "ytitle";
        document.body.appendChild(you);
        insertAfter(robotSays, you);

        // User's message
        var userMessage = document.createElement("span");
        var userMessageText = document.createTextNode(message.value);
        userMessage.appendChild(userMessageText);
        userMessage.className = "umsg";
        document.body.appendChild(userMessage);
        insertAfter(you, userMessage);
    } else if(userMessage){
        userMessage.nextSibling.insertAfter(this);
    }
}  

这是我的帖子系统:: http://jsfiddle.net/MatthewKosloski/YWWMW/

的小提琴

(使用回车键提交)

1 个答案:

答案 0 :(得分:1)

var userMessage = robotSays;

function submitUserMessage(){

    var message = document.getElementById("user-input");

    if(message.value){

        // YOU
        var you = document.createElement("h4");
        var youText = document.createTextNode("You");
        you.appendChild(youText);
        you.className = "ytitle";
        document.body.appendChild(you);
        insertAfter(userMessage, you);

        // User's message
        userMessage = document.createElement("span");
        var userMessageText = document.createTextNode(message.value);
        userMessage.appendChild(userMessageText);
        userMessage.className = "umsg";
        document.body.appendChild(userMessage);
        insertAfter(you, userMessage);
    }
}