Foros del Web » Programando para Internet » Javascript »

Eliminar cierta cantidad de divs

Estas en el tema de Eliminar cierta cantidad de divs en el foro de Javascript en Foros del Web. Hola, soy nueva en este lenguaje y tengo un select con números que clonan un div dependiendo del número seleccionado, si vuelvo a seleccionar de ...
  #1 (permalink)  
Antiguo 07/01/2012, 16:08
Avatar de lgza70  
Fecha de Ingreso: febrero-2011
Mensajes: 29
Antigüedad: 13 años, 2 meses
Puntos: 1
Pregunta Quisiera eliminar una cierta cantidad de divs

Hola, soy nueva en este lenguaje y tengo un select con números que clonan un div dependiendo del número seleccionado, si vuelvo a seleccionar de ese mismo select otro número y es un número mayor al seleccionado anteriormente, ya me pone exactamente la cantidad que elija, pero si selecciono después un número menor me gustaría poder quitar los divs que son para que sean de el mismo número seleccionado, que ya tengo en "restaDos" el número que se debe eliminar, pero se puede indicar en algún lado que quiero que me quite esa cantidad?

o hay una mejor forma de hacerlo?

Agradecería bastante cualquier ayuda!

Aquí está mi código:


$(document).ready(function(){

$('#empleados').change(function() {


var contador = $(this).val(),

nuevosDiv = $('#detalles');
n = $('div #detalles').length;
resta= n - contador;
restaDos= contador - n;

//Aquí es mi duda, esto no funciona, me quita de uno en uno
if(n > contador) {

for (var i = 0; i < resta; i++) {
nuevosDiv.remove();
}

}

else {
//Esto si funciona perfectamente
for (var i = 0; i < restaDos; i++) {

nuevosDiv.clone().insertAfter(nuevosDiv);
}


}
});

Última edición por lgza70; 07/01/2012 a las 18:21
  #2 (permalink)  
Antiguo 07/01/2012, 18:20
Avatar de lgza70  
Fecha de Ingreso: febrero-2011
Mensajes: 29
Antigüedad: 13 años, 2 meses
Puntos: 1
Pregunta Eliminar cierta cantidad de divs

Hola, soy nueva en este lenguaje y tengo un select con números que clonan un div dependiendo del número seleccionado, si vuelvo a seleccionar de ese mismo select otro número y es un número mayor al seleccionado anteriormente, ya me pone exactamente la cantidad que elija, pero si selecciono después un número menor me gustaría poder quitar los divs que son para que sean de el mismo número seleccionado, que ya tengo en "restaDos" el número que se debe eliminar, pero se puede indicar en algún lado que quiero que me quite esa cantidad?

o hay una mejor forma de hacerlo?

Agradecería bastante cualquier ayuda!

Aquí está mi código:


$(document).ready(function(){

$('#empleados').change(function() {


var contador = $(this).val(),

nuevosDiv = $('#detalles');
n = $('div #detalles').length;
resta= n - contador;
restaDos= contador - n;

//Aquí es mi duda, esto no funciona, me quita de uno en uno
if(n > contador) {

for (var i = 0; i < resta; i++) {
nuevosDiv.remove();
}

}

else {
//Esto si funciona perfectamente
for (var i = 0; i < restaDos; i++) {

nuevosDiv.clone().insertAfter(nuevosDiv);
}


}
});
  #3 (permalink)  
Antiguo 07/01/2012, 22:51
Avatar de alejandromg  
Fecha de Ingreso: noviembre-2011
Ubicación: Tegucigalpa, HN
Mensajes: 35
Antigüedad: 12 años, 5 meses
Puntos: 15
Respuesta: Quisiera eliminar una cierta cantidad de divs

Ya que estas usando jQuery lo más fácil seria tener destinada una div como el espacio para los nuevos.
Código HTML:
Ver original
  1. <select id="empleados">
  2.   <option> 1</option>
  3.   <option>2</option>
  4.   <option>3</option>
  5.   <option>4</option>
  6. <div id="clones">
  7.   <div id="detalles">Hola</div>
  8. </div>

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.     $('#empleados').change(function() {
  3.       var contador  = $(this).val(),
  4.           nuevosDiv = $('#detalles'),
  5.           n         = $('div #detalles').length,
  6.           resta     = n - contador,
  7.           restaDos  = contador - n;
  8.  
  9.       // Aquí  ubicas el último div y lo remueves usando el selector :last-child o :last en mi caso
  10.       if(n > contador) {
  11.         for (var i = 0; i < resta; i++) {
  12.           $('#clones div:last').remove()
  13.         }
  14.       } else {
  15.         for (var i = 0; i < restaDos; i++) {
  16.           nuevosDiv.clone().insertAfter(nuevosDiv);
  17.         }
  18.       }
  19.     });
  20.   });

Esto deberia de funcionar, ya que estas "clonando", lo mejor es que todos tus clones esten dentro de un contenedor ("#clones"), luego solo eliminas el último de los miembros.

Saludos y buena suerte aprendiendo js :)
__________________
¿Te gusto mi comentario? +1 ;)

Alejandro Morales. La mejor forma de contactarme :: via twitter @_alejandromg
CTO at numbus

Última edición por alejandromg; 07/01/2012 a las 22:52 Razón: No cambie los comentarios
  #4 (permalink)  
Antiguo 08/01/2012, 01:21
4ng3r
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Eliminar cierta cantidad de divs

Ok me gusta que uses JQuery, esta es mi solución

Código HTML:
Ver original
  1.     <head>
  2.         <script src="jquery.js"></script>
  3.         <script>
  4.             $(function(){
  5.                 $("#id_select").change(function(){
  6.                     $("#padre div").remove();
  7.                    
  8.                     for(i=0; i < $(this).val(); i++ ){
  9.                        console.debug("dd");
  10.                        html = "<div>DIV INSERTADO</div>";
  11.                         $("#padre").append(html);
  12.                     }
  13.                 })
  14.             })  
  15.         </script>
  16.     </head>
  17.    
  18.     <body>
  19.         <select id="id_select">
  20.             <option value="1">1</option>
  21.             <option value="2">2</option>
  22.             <option value="3">3</option>
  23.             <option value="4">4</option>
  24.             <option value="5">5</option>
  25.             <option value="6">6</option>
  26.         </select>
  27.        
  28.         <div id="padre">
  29.            
  30.         </div>
  31.     </body>
  32. </html>
  #5 (permalink)  
Antiguo 08/01/2012, 23:09
Avatar de lgza70  
Fecha de Ingreso: febrero-2011
Mensajes: 29
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Eliminar cierta cantidad de divs

Excelente! exactamente lo que necesitaba... Muchísimas gracias de nuevo =)
  #6 (permalink)  
Antiguo 08/01/2012, 23:26
Avatar de lgza70  
Fecha de Ingreso: febrero-2011
Mensajes: 29
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Quisiera eliminar una cierta cantidad de divs

Ah mira no andaba taaaan perdida tampoco! jaja si funciona!! En verdad te agradezco el tomarte el tiempo de resolver mi problema =) muchísimas gracias!

Etiquetas: cantidad, divs, funcion
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 00:44.