这是一个聊天室列表。目前,如果您通过单击Enter加入某个房间,它将通过添加聊天室的div
来打开聊天室。因此,如果您点击多个房间,它将打开多个房间
我想确保在任何给定时间只能打开一个房间。因此,如果房间打开并且用户点击打开另一个房间,任何其他打开的房间应该关闭。
此代码显示向div
添加了一个ID为chats
的聊天室:
if (data.join) {
console.log("Joining room " + data.join);
var roomdiv = $(
"<div class='room' id='room-" + data.join + "'>" +
"<h2>" + data.title + "</h2>" +
"<div class='messages'></div>" +
"<input><button>Send</button>" +
"</div>"
);
$("#chats").append(roomdiv);
我想添加一些代码,以确保在打开另一个之前关闭所有打开的房间。以下是我计划制作的附加代码:
if (data.join) {
console.log("Joining room " + data.join);
var roomdiv = $(
"<div class='room' id='room-" + data.join + "'>" +
"<h2>" + data.title + "</h2>" +
"<div class='messages'></div>" +
"<input><button>Send</button>" +
"</div>"
);
$("#room-" + * ).remove(roomdiv);
$("#chats").append(roomdiv);
此行$("#room-" + *).remove(roomdiv);
不起作用。我想在此处实现一些内容,说明应删除ID为room-
(* / anything)的任何属性。
解决这个问题的正确方法是什么?
答案 0 :(得分:0)
您可以使用^
JQuery选择器,它将选择以...开头的所有内容:
$("[id^='room-']").remove(roomdiv);
答案 1 :(得分:0)
所有现有客房均拥有班级room
。在创建和添加新房间之前,您可以使用$('.room').remove()
一次删除所有这些内容。