尝试制作一个小聊天程序,我目前正在使用click
函数创建新容器(要聊天的新频道)并将其添加到我的HTML页面。
我想在我创建的每个容器中添加一个数组(白名单)并以某种方式命名,以便我以后可以调用它,但容器的数量不受限制,所以我会有用变量或其他东西来做。
我目前正在为所有容器使用一个数组;代码段:
i = 0;
$('#newroom').click(function () {
chatroom = {};
chatroom.whitelist = [];
//making every whitelist unique here
//here i am creating all the other stuff
i++;
});
我想稍后再将白名单称为
document.getElementById('chatroom.whitelist' + i)
或类似的东西,我只是想区分它们以使名称存储在一个特定的白名单中。
我不知道是否有更简单的方法,因为我是Javascript的新手,但我确实希望你能帮助我。
答案 0 :(得分:0)
您的模型不需要每个白名单的唯一ID。因为您将白名单添加到聊天室。
另一方面,当您想要document.getElementById('chatroom.whitelist' + i)
因为每次点击都要添加新的聊天室。点击10次后,您将有10个聊天室。如果你想选择第三个聊天室,你打算做什么?所以id需要在聊天室:
chatrooms = [];
$('#newroom').click(function () {
chatroom = {};
chatroom.whitelist = [];
id = chatrooms.length;
chatrooms.push(chatroom);
});
//select 3rd chatroom
chatr = chatrooms[2];
//get the whitelist
wl = chatr.whitelist;
答案 1 :(得分:0)
考虑以下简单方法:
假设我们有一个用于id="chatroom"
聊天室的主容器和一个带id="newroom"
的自定义按钮。在#newroom
点击时,我们可以为每个“白名单”添加一个唯一的块
html部分:
<div id="chatroom"></div>
<div id="newroom">Add new room</div>
js part:
var counter = 0;
$('#newroom').click(function () {
//making every whitelist unique here
counter++;
$('#chatroom').append("<div id='whitelist"+ counter +"'></div>");
});
// now you can access certain `whitelist` element by id:
var members = $("#whitelist3").text(); // exemplary case
答案 2 :(得分:0)
据我所知,您希望在白名单中创建子列表。一个建议是为什么不在白名单中创建属性,这些属性可以用标识每个白名单的可区分标准命名,然后所有这些属性的值可以是您的名称数组。
可能类似于
chatroom = {};
$('#newroom').click(function () {
chatroom.whitelist.distinctPropertyOne = [];
chatroom.whitelist.distinctPropertyOne.push = 'name1';
});
现在,您可以使用chatroom.whitelist.distinctPropertyOne
访问单独的白名单希望这有帮助。
马南