Вопрос по jquery – пытается удалить тег div на основе атрибута данных

11
<div class="row-container" data-i="'+data[i].product_id+'">
<div class="row-container" data-i="'+data[i].product_id+'">
<div class="row-container" data-i="'+data[i].product_id+'">
<div class="row-container" data-i="'+data[i].product_id+'">

Я хочу удалить контейнер строки, который содержит определенный product_id. Я знаю, что данные ('i' ') извлекают значение, но я не знаю, куда идти дальше.

Связанный пост:stackoverflow.com/questions/1009485/… Cᴏʀʏ

Ваш Ответ

3   ответа
4

filter():

var $div = $(".row-container").filter(function() {
    return $(this).data("i") == value; // where value == product id to find
});
$div.remove();
@iambriansreed верно, но мне нравится, чтобы мои ответы были как можно более ясными.
Не берите в голову. Есть лучший ответ.
+1, я не думаю, что моя намного лучше.
3

селектор атрибута в jQuery, который вы могли бы использовать, чтобы найти элемент, который вы ищете.

$('div.row-container[data-i="<value>"]');
26
$('.row-container').filter(function(){
    return $(this).data('i') === "product_id"
}).remove();

.data позволяет устанавливать и получать другие переменные, кроме строк (функций и объектов)

Вы также можете использовать это:

$('.row-container').filter('[data-i="product_id"]').remove();

Или с одним селектором:

$('.row-container[data-i="product_id"]').remove();

(Куда"product_id" заполнитель для реальной стоимости ...)

@iambriansreed. Вероятно, да ... но это небольшое изменение.
+1 Просто поменяй"foo" в"product_id" для ясности. Кроме того, не слишком ли последнее?

Похожие вопросы