Foros del Web » Programando para Internet » Jquery »

[JQuery] Eliminar elemento padre

Estas en el tema de [JQuery] Eliminar elemento padre en el foro de Jquery en Foros del Web. En este código necesito eliminar el elemento "<li>" completo cuando se pulse el botón Eliminar. Sólo deseo quitar los que tengan el checkbox activado: @import ...
  #1 (permalink)  
Antiguo 23/05/2011, 16:54
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
[JQuery] Eliminar elemento padre

En este código necesito eliminar el elemento "<li>" completo cuando se pulse el botón Eliminar. Sólo deseo quitar los que tengan el checkbox activado:
Código HTML:
Ver original
  1. <ul id="contenedor">
  2.     <li class="lista" id="lista-1">
  3.         Lista 1
  4.         <input type="checkbox" class="check" id="eliminar-1" />
  5.     </li>
  6.     <li class="lista" id="lista-2">
  7.         Lista 1
  8.         <input type="checkbox" class="check" id="eliminar-2" />
  9.     </li>
  10.     <li class="lista" id="lista-3">
  11.         Lista 1
  12.         <input type="checkbox" class="check" id="eliminar-3" />
  13.     </li>
  14. </ul>
  15.  
  16. <input type="button" id="eliminar" value="eliminar" />
A fin de lograrlo estoy intentándolo con la función .remove():
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. $(function() {
  3.     $("#eliminar").click(function () {
  4.       $('.check:checked').remove();
  5.     });
  6. });
  7. </script>
Actualmente sólo consigo eliminar el checkbox, pero no el padre de .check (la lista), el cual es el que me interesa quitar ¿Cómo le hago?.

Si desean ver el código en funcionamiento, por favor diríjanse aquí: http://jsfiddle.net/darioferrer/z5JGT/
  #2 (permalink)  
Antiguo 23/05/2011, 16:59
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: [JQuery] Eliminar elemento padre

Probaste con parent ?

Código Javascript:
Ver original
  1. $(function() {
  2.     $("#eliminar").click(function () {
  3.         $('.check:checked').parent().remove();
  4.     });
  5. });

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 23/05/2011, 17:01
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
Respuesta: [JQuery] Eliminar elemento padre

Ja! Estuve intentándolo anoche pero no de esa forma jeje. Ya lo pruebo, gracias masterpuppet.
  #4 (permalink)  
Antiguo 23/05/2011, 17:13
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
Respuesta: [JQuery] Eliminar elemento padre

¡Genial! Funciona perfecto, gracias viejo!.

Un aspecto que me llamó la atención sobre .remove() ha sido un comentario formulado en la documentación. El usuario afirma que para que la eliminación vía DOM sea íntegra, es mejor usar .empty().remove() que el simple .remove() ¿Qué opinan de eso?. El enlace al comentario:

http://api.jquery.com/remove/#comment-41237758

Hasta dicen que resulta más rápido.
  #5 (permalink)  
Antiguo 24/05/2011, 13:09
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: [JQuery] Eliminar elemento padre

Ese thousand's se lo invento, la diferencia entre uno y otro a la hora de eliminar es :

remove
Código Javascript:
Ver original
  1. if ( elem.parentNode ) {
  2.     elem.parentNode.removeChild( elem );
  3. }
empty
Código Javascript:
Ver original
  1. while ( elem.firstChild ) {
  2.     elem.removeChild( elem.firstChild );
  3. }

Lo probé en local y va mas rápido remove, lo que si es verdad es que empty.remove es mas rápido que empty, habría que ver bajo que condiciones hizo el test, cantidad de nodos, nivel de nodos anidados, eventos y data guardados en los nodos y si al remove le paso un selector, sea cual sea el caso para notar diferencia tenes que tener cientos de nodos, en una situación normal es imperceptible.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #6 (permalink)  
Antiguo 24/05/2011, 17:13
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
Respuesta: [JQuery] Eliminar elemento padre

Cita:
Iniciado por masterpuppet Ver Mensaje
Ese thousand's se lo invento
A mi su ejemplo me pareció demasiado desquiciado. Un caso inaplicable de cabo a rabo.

Cita:
Iniciado por masterpuppet Ver Mensaje
habría que ver bajo que condiciones hizo el test
Hasta dejó un archivo descargable. Pesa como 3 MB jejeje.

Etiquetas: padre
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:27.