一般信息
我目前正在使用websocket进行聊天系统.除了消息之外,我使用相同的websocket向用户显示当前在线的用户列表.
问题
因为几天后我一直试图用OOP方法编写所有Javascript脚本.到目前为止一切都很顺利,但现在我已经弄错了一个错误我真的不明白:
Node.appendChild的参数1不是对象
代码
我尽可能缩小代码范围,仅代表重要部分:
var CB = CB || {};
CB.messages = {
userListLayout: function(Username){
var userListTable = "<table class='userTable' data-user='"+ Username +"'><tbody><tr><td><img src='layout/images/default_profile.png'></td><td>" + Username + "</td></tr></tbody></table>";
return userListTable;
}
}
CB.users = {
set: function(Usernames) {
var List = document.getElementById('usersList'); // Represents an empty div
var i, j = Usernames.length, ListUser;
for (i=0; i<j; i++) {
ListUser = CB.messages.userListLayout(Usernames[i]);
List.appendChild(ListUser); // Error
}
}
}
Run Code Online (Sandbox Code Playgroud)
所以问题是:我做错了什么,解决它的最佳方法是什么?
ListUser是一串HTML.Node.appendChild仅接受DOM节点作为参数.
https://developer.mozilla.org/en-US/docs/Web/API/Node/appendChild
这里有两个选项,要么在节点中包装所需的文本,要么使用appendChild或保留当前的设置和使用innerHTML,这允许您向HTML文档添加字符串:
List.innerHTML += ListUser
| 归档时间: |
|
| 查看次数: |
4426 次 |
| 最近记录: |