Найти и удалить в переменной блок

Найти и удалить в переменной $all_messages блок по data.className, data.name, data.mess

Код добавления блока в переменную:

socket.on('add mess', function(data) {
            // Встраиваем полученное сообщение в блок с сообщениями
            // У блока с сообщением будет тот класс, который соответвует пользователю что его отправил
            $all_messages.append("<div class='alert alert-" + data.className + "'><b>" + data.name + "</b>: " + data.mess + "</div>");
        });

Пример самого блока:введите сюда описание изображения


Ответы (1 шт):

Автор решения: uGame

Можно вместо indexOf регулярку запихать, но я в них не силен)

$(() => {
  let $allMessages = $('#all-messages')[0]

  append({
    className: 'danger',
    name: 'Ошибка',
    mess: 'Введите свое имя и фамилию'
  })
  append({
    className: 'danger',
    name: 'Ошибка',
    mess: 'Введите сообщение'
  })
  append({
    className: 'danger',
    name: 'Ошибка',
    mess: 'Сообщение слишком длинное (больше 300 символов)'
  })

  function append(data) {
    let $div = $("<div class='alert alert-" + data.className + "'><b>" + data.name + "</b>: " + data.mess + "</div>")[0]
    $allMessages.append($div)
  }

  remove({
    className: 'danger',
    name: 'Ошибка',
    mess: 'Введите сообщение'
  })


  function remove(data) {
    for (let i = 0, l = $allMessages.children.length; i < l; i++) {
      it = $allMessages.children[i]
      if (it.className.indexOf(data.className) !== -1 &&
        it.innerText.indexOf(data.name) !== -1 &&
        it.innerText.indexOf(data.mess) !== -1) {
        it.remove()
        return;
      }
    }

  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="all-messages"></div>

→ Ссылка