javascript - 如何在列表的同一 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();
});
}
我有任何帮助,请谢谢。
解决方案
首先,您的代码会生成无效的 HTML 语法。您不能有 2 个或更多元素具有相同的id
. 所以最好将其更改为class
并更改#
为.
样式表:
chatbox.append("<li class='list-msg'><div class='msg-myself'>"+msg.message+"</div></li>");
要附加最后一个li
,您可以使用以下语法:
$(chatbox).children('li').last().append(...);
推荐阅读
- docker - 卷曲错误请求 400 到 docker 服务器容器
- c++ - 有关 std::reference_wrapper 移除的设计
- php - 在php中加密并在sql server中解密
- python - PyCharm Python - 在调试器中显示对象的 __str__ 而不是内存地址
- javascript - 将对象推送到不适用于 Javascript 反应的数组
- javascript - 使用 Javascript 保存 HTML 文件的方法
- excel - VBA重复将2张不同组合从一个主工作簿复制到新工作簿?
- android - 如何将 Android SingleLaunchActivityTestCase 转换为 ActivityTestRule?(仪器单元测试)
- c# - 从数据表中更新有界数据网格视图中的插入数据
- spring-boot - PCF 无法在应用程序中同时使用配置服务器和服务注册表