2011-01-21 22 views
16

¿Cómo elimino una DIV con un valor específico?Eliminar la etiqueta DIV usando Javascript o Jquery

<div value="0" class="task_row"></div> 

Quiero quitar el div por encima del cual tiene un valor 0.

+4

¿Está utilizando una librería javascript? ¿Será jQuery una respuesta aceptable? Si es así, puede hacer esto si jQuery: $ ('[value = "0"]'). Remove(); –

+3

valor no es un atributo válido de la etiqueta div. –

Respuesta

45

Como señala Ben Rowe en los comentarios, value no es un atributo válido de la etiqueta div. Y tanto la solución jQuery como la solución que usa getElementsByTagName() tienen que iterar a través de una lista, lo que es malo para el rendimiento. Creo que la creación de un atributo id en cambio, es una mejor opción:

<div id="task_row_0" class="task_row"></div> 

Y a continuación, puedes hacer:

var div = document.getElementById("task_row_" + taskId); 
div.parentNode.removeChild(div); 
+2

Seamos realistas aquí. No es necesario que jQuery haga algo tan simple como esto. –

+6

Seamos aún más realistas aquí. Toneladas de personas usan jQuery, por lo que si ya lo están usando, ¿por qué no elegir una simple línea de código? [+1 para esta respuesta, porque porque no estoy usando jQuery en este momento] – bergie3000

+0

jQuery come recursos de la computadora y bloquea los navegadores cuando se abren en varias pestañas, ¡así que no lo use! – TomeeNS

3
var divs = document.getElementsByTagName('div'); 
for(var i = divs.length; i; i -= 1) { 
    if (divs[i].getAttribute('value') == 0) { 
     divs[i].parentNode.removeChild(divs[i]); 
    } 
} 
4

este es el código de jQuery)):

$('div').each(function(){ 
    if($(this).attr('value') == '0'){ 
    $(this).remove(); 
    } 
}); 
2

Editar: No importa - Zhasulan me adelantó . : P

con jQuery -

$('div').each(function(){ 
    if($(this).attr('value') == '0') { 
     $(this).hide(); 
     } 
    }); 
0

alternativa a jQuery/JavaScript se puede lograr a través de CSS única -

JSFIDDLE

div[value="0"] { 
    display: none; 
} 

O a través del selector de atributo utilizando jQuery:

JSFIDDLE

$("div[value='0']").hide(); /*.remove() as per your requirement*/ 
Cuestiones relacionadas