Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Remover div's dinámicos

Estas en el tema de Remover div's dinámicos en el foro de Frameworks JS en Foros del Web. Qué tal? Bien... Tengo este código que genera div's con id dinámicos: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original < script type = "text/javascript" > ...
  #1 (permalink)  
Antiguo 13/10/2010, 09:16
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 18 años, 4 meses
Puntos: 70
Remover div's dinámicos

Qué tal?

Bien...

Tengo este código que genera div's con id dinámicos:

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.     $(function(){
  3.         var ndivs = 1;
  4.         $('#adicionarDiv').click(function(){
  5.             //$('#contenedorDivs').html('<div class="hhh"><p>Hola!</p></div>');
  6.             $('<div class="hhh" id="'+ndivs+'"><p><input id="borrarDiv'+ndivs+'" type="button" name="borrarDiv'+ndivs+'" value="Borrar Div" /></p><p>'+ndivs+'</p></div>').appendTo('#contenedorDivs');
  7.             ndivs++;
  8.         })
  9.  
  10.         $('#borrarDiv1').live('click', function(){
  11.             $('#1').remove();
  12.         })
  13.     });
  14. </script>

Como esos id son dinámicos, que instrucción me serviría en Jquery para decirle que elimine el div con el id correspondiente que den click (por ahora tengo una instrucción que elimina siempre el div con id 1 xD).

Si se fijan, el html dinámico que genero, genera un botón que es su respectivo eliminar:

Código Javascript:
Ver original
  1. <input id="borrarDiv'+ndivs+'" type="button" name="borrarDiv'+ndivs+'" value="Borrar Div" />

La idea sería que al picar en su respectivo botón, elimine ese div dinámico.

Espero me haya explicado bien

Gracias de nuevo.
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #2 (permalink)  
Antiguo 13/10/2010, 13:19
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 15 años
Puntos: 65
Respuesta: Remover div's dinámicos

Ahora que lei tu otro post entiendo porqué querés los id dinámicos. Pero no sirven.

Tenés que ver como manejarte por tu estructurahttp://api.jquery.com/category/traversing/
, si ves cada ejemplo de la doc para ver que hace cada cosa se te va a ser la vida más fácil y eso es una de las ventajas de usar un framework, de eso se trata.
Si tenes varios items y dentro de cada uno tenés varios elementos como inputs, parrafos o lo que se y queres tener un botón, div, link lo que sea para eliminar ese item ya sabés que tenes un contenedor, en tu ejemplo tu contenedor es un div con clase 'hhh' entonces ya sabes que desde el elemento clickeado para borrar tenes que subir hasta el div.hhh y eliminar, sencillo.

Código HTML:
Ver original
  1.     <title>Pruebas</title>
  2. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
  3. $(function(){
  4.     $('.hhh input').click( function (){
  5.         $(this).closest('.hhh').remove();
  6.     });
  7. });
  8.     .hhh{background:green;}
  9. </head>
  10.  
  11.     <div class="hhh"><div>yyy<input type="button" value="Borrar Div 1" /></div><p>Div 1</p></div>
  12.     <div class="hhh"><input type="button" value="Borrar Div 2" /><p>Div 2</p></div>
  13.     <div class="hhh"><input type="button" value="Borrar Div 3" /><p>Div 3</p></div>
  14.     <div class="hhh"><input type="button" value="Borrar Div 4" /><p>Div 4</p></div>
  15.     <div class="hhh"><input type="button" value="Borrar Div 5" /><p>Div 5</p></div>
  16.     <div class="hhh"><input type="button" value="Borrar Div 6" /><p>Div 6</p></div>
  17.     <div class="hhh"><input type="button" value="Borrar Div 7" /><p>Div 7</p></div>
  18.     <div class="hhh"><input type="button" value="Borrar Div 8" /><p>Div 8</p></div>
  19.  
  20. </body>
  21. </html>

Ahi utilizo evento click, deberias usar vos el live
  #3 (permalink)  
Antiguo 14/10/2010, 07:55
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 9 meses
Puntos: 101
Respuesta: Remover div's dinámicos

Ah! Si, traversing es recorrer la jerarquia de elementos del DOM: parents, childs, siblings.

Como siempre, a un elemento que tiene un evento se lo accede con $(this), y luego desde ahí se accede a donde se necesite con traversing.

Última edición por mayid; 14/10/2010 a las 08:01
  #4 (permalink)  
Antiguo 14/10/2010, 18:59
Avatar de tredio  
Fecha de Ingreso: noviembre-2008
Ubicación: Carabobo
Mensajes: 466
Antigüedad: 16 años, 1 mes
Puntos: 66
Respuesta: Remover div's dinámicos

podrias hacer:

Código Javascript:
Ver original
  1. $('div.hhh > input[type="button"]').live(function(){
  2.     $(this).parent().fadeOut('slow',function(){$(this).remove();});
  3. });

nota: el fadeOut es para hacer una simple animacion, si no lo quieres asi solo quitalo y coloca el remove
__________________
Extension Google Chrome
dar las gracias no cuesta nada :D
  #5 (permalink)  
Antiguo 02/11/2010, 16:32
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 18 años, 4 meses
Puntos: 70
Respuesta: Remover div's dinámicos

Disculpen la demora...

Gracias a los 3 por sus mensajes :) Entendido!

Sólo para aclarar que para el ejemplo de Dany_S, como mis div's se agregan dinámicamente, para eliminarlos, se debe usar la función live.

Código Javascript:
Ver original
  1. $('.hhh input').live('click', function(){
  2.             $(this).closest('.hhh').remove();
  3.         });

Por cierto tredio, tu ejemplo no me funcionó

Saludos.
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com

Última edición por Carxl; 02/11/2010 a las 16:40

Etiquetas: remover
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 19:31.