Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Seleccionar div

Estas en el tema de Seleccionar div en el foro de Jquery en Foros del Web. Hola phpperos, tengo una idea que no consigo realizar. os comento tengo una lista de div variable, cada div tiene un data univoco. Quiero que ...
  #1 (permalink)  
Antiguo 20/07/2014, 06:15
 
Fecha de Ingreso: septiembre-2011
Mensajes: 176
Antigüedad: 13 años, 2 meses
Puntos: 0
Seleccionar div

Hola phpperos,

tengo una idea que no consigo realizar. os comento tengo una lista de div variable, cada div tiene un data univoco. Quiero que al pinchar en el div recoger el dato y colocarlo en un array y si lo vuelvo a tocar eliminarlo del array.

Me pueden ayudar como efocarlo usar JSOn etc.

El contenido lo optengo con jquery el data.
Código HTML:
Ver original
  1. $(".btn").on('click', function() {
  2.         var id=$(this).attr('data');      
  3.      
  4.    
  5.     });


Un Saludo Gracias
  #2 (permalink)  
Antiguo 20/07/2014, 11:04
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Seleccionar div

Simplemente busca el dato en el array ya sea con el método indexOf (nativo de JavaScript) o con el método inArray de jQuery. Si el dato se encuentra en el array, lo retiras del mismo con el método splice, caso contrario, lo insertas con el método push.

Código Javascript:
Ver original
  1. var array = []; //El array
  2.  
  3. $(".btn").on("click", function() {
  4.     var id = $(this).attr('data'),
  5.         pos = $.inArray(id, array);
  6.  
  7.     if (pos > -1)
  8.         array.splice(pos, 1);
  9.     else
  10.         array.push(id);
  11. });

Cualquiera de los dos métodos de búsqueda en arrays devuelve la posición del elemento si este se encuentra o -1 si no está, por eso es que en la condición verifico que el valor obtenido sea mayor a -1 para saber si el dato en cuestión ya está en el array.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 20/07/2014, 13:28
 
Fecha de Ingreso: septiembre-2011
Mensajes: 176
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Seleccionar div

Vale te entiendo perfectamente una ultima cosa para pasarlo ahora por post ese array?

Gracias
  #4 (permalink)  
Antiguo 20/07/2014, 14:07
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Seleccionar div

Conviértelo en un objeto JSON con el método JSON.stringify y en el archivo PHP, le aplicas la función json_decode. El envío puedes hacerlo ya sea desde un formulario o vía Ajax.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 20/07/2014, 14:46
 
Fecha de Ingreso: septiembre-2011
Mensajes: 176
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Seleccionar div

Si veo como enviarlo por ajax http://geeks.ms/blogs/etomas/archive...ando-post.aspx por formuario no lo veo claro. Aunque puedo usar ajax para pasar todo el formulario por que aparte de los div tendría otros datos el formulario.

¿que opinas??

Un Saludo Muchas gracias por su tiempo.
  #6 (permalink)  
Antiguo 20/07/2014, 15:25
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Seleccionar div

Claro que es una buena opción, adelante.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: javascript, js, php, variable
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 23:16.