我有一个使用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();
});
}
我有新的帮助,谢谢。
答案 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(...);