如何在列表中的同一li中附加测试

时间:2019-07-08 13:40:32

标签: javascript jquery

我有一个使用jQuery完成的聊天应用程序,我需要一些帮助,我希望在<li>内附加所有测试,仅当创建时间少于一秒钟时,所有测试才会进行

这是我的代码

var lastDate = 0;

    function doLoopMsg(messages, memberData, roomName) {

        let box = "";
        // set name header
        $('.msgRecipientName').text(roomName);
        // order by date (asc)
        let messagesInOrder = _.orderBy(messages, function (a) { return a.createdOn }, 'asc');
        //console.log(messagesInOrder);
        $.each(messagesInOrder, function (key, msg) {


            if (new Date(msg.createdOn).getTime() - lastDate > 60 * 60 * 1000) {
                //console.log('more tem one hr');

                chatbox.append("<li class='list-msg''><div id='time-stamp'><div>" + formatDate(msg.createdOn) + "</div></div></li>");


            }

            if (new Date(msg.createdOn).getTime() - lastDate > 1000) {
                // start box
                chatbox.append("<li class='list-msg'><div id='msg-myself'>"+msg.message+"</div></li>");
            }

            if (new Date(msg.createdOn).getTime() - lastDate < 1000) {
                // my issue here I dont know how get done this

            }

            lastDate = new Date(msg.createdOn).getTime();
        });


    }   

我有新的帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

首先,您的代码生成无效的HTML语法。您不能有2个或多个具有相同id的元素。因此最好在样式表中将其更改为class并将#更改为.

chatbox.append("<li class='list-msg'><div class='msg-myself'>"+msg.message+"</div></li>");

要附加最后一个li,可以使用以下语法:

$(chatbox).children('li').last().append(...);