如何选择“任何和所有可能的值”

时间:2018-01-09 10:24:18

标签: javascript jquery

这是一个聊天室列表。目前,如果您通过单击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)的任何属性。

解决这个问题的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

您可以使用^ JQuery选择器,它将选择以...开头的所有内容:

$("[id^='room-']").remove(roomdiv);

答案 1 :(得分:0)

所有现有客房均拥有班级room。在创建和添加新房间之前,您可以使用$('.room').remove()一次删除所有这些内容。