2012-05-21 13 views
10
<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+'"> 

Quiero eliminar el contenedor de fila que contiene un product_id en particular. Sé que los datos ('i') recuperan el valor, pero no sé a dónde ir desde allí.tratando de eliminar la etiqueta div según el atributo de datos

+0

Post relacionados: http://stackoverflow.com/questions/1009485/jquery-filter-element-based-on-data-key-value –

Respuesta

23
$('.row-container').filter(function(){ 
    return $(this).data('i') === "product_id" 
}).remove(); 

.data permite configurar y obtener otras variables al lado de cuerdas (funciones y objetos)

También puede utilizar esto:

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

O con un selector:

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

(Donde "product_id" es un marcador de posición para el valor real ...)

+1

+1 Simplemente cambie '" foo "' a '" product_id "' para mayor claridad. Además, ¿no es el último demasiado rápido? – iambriansreed

+0

@iambriansreed. Probablemente sí ... pero es un cambio menor. – gdoron

4

Puede utilizar filter():

var $div = $(".row-container").filter(function() { 
    return $(this).data("i") == value; // where value == product id to find 
}); 
$div.remove(); 
+0

@iambriansreed cierto, pero me gusta hacer mis respuestas tan claras como sea posible. –

+0

No importa. Hay una mejor respuesta. – iambriansreed

+0

+1, no creo que el mío sea mucho mejor. – gdoron

3

Hay un attribute selector en jQuery que se puede utilizar para encontrar el elemento que se está buscando.

$('div.row-container[data-i="<value>"]'); 
Cuestiones relacionadas