Пытаетесь удалить элемент со значением данных, равным ранее созданной переменной? - PullRequest
2 голосов
/ 26 марта 2020

Когда я нажимаю кнопку «tra sh», я хочу удалить блок сообщений. Есть несколько блоков сообщений, но все они имеют уникальный data-values. id целевого блока, который я хочу удалить, сохраняется в data-value из .send-message-button.

Я попытался создать переменную, которую я мог бы передать целевому элементу .messageblock. Я проверил с alert, чтобы видеть, получает ли переменная правильное число, которое это делает. Однако, когда я alert все это, это дает [object object] (без .remove, конечно).

Как я могу это сделать?

var trashid = $(".send-message-button").attr("data-value");
$('.message-block').attr("data-value", trashid).remove();

1 Ответ

1 голос
/ 26 марта 2020

Если вы хотите получить элемент, используя значение одного из его атрибутов, вам нужно использовать селектор атрибута, а не установщик метода attr().

Есть два основных способа сделать это. Во-первых, если атрибут data присутствует в DOM, вы можете использовать селектор атрибута:

var trashid = $(".send-message-button").data('value');
$('.message-block[data-value="' + trashid + '"]').remove();

В качестве альтернативы, если атрибут data содержится в кэше jQuery (как будет В случае, если вы используете data() как метод получения / установки, как и должно быть), вы можете использовать filter() вместо:

var trashid = $(".send-message-button").data('value');
$('.message-block').filter((i, e) => $(e).data('value') === trashid).remove();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...