首页 > 解决方案 > 如何在列表的同一 li 中附加测试

问题描述

我有一个使用 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();
        });


    }   

我有任何帮助,请谢谢。

标签: javascriptjquery

解决方案


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

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

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

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

推荐阅读