JQuery - Ayuda sobre codigo Jquery en website de prueba

 
Vista:
sin imagen de perfil

Ayuda sobre codigo Jquery en website de prueba

Publicado por tafufo (3 intervenciones) el 04/09/2014 05:32:16
Hola:
Tengo el siguiente codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
var numeros = [];
$( "#btndone" ).click(function() {
$myList2 = $("#id333");
numeros.length = 0;
$("#id1 > div").each(function(){
if($(this).hasClass('verde')){
numeros.push($(this).text());
}
});
 
 
$("#idnumber").val("");
$("#idnumber").val(numeros.join(" "));
 
});
 
 
 
$( "#btnreset" ).click(function() {
$( "#id1 > div" ).addClass("blanco");
$("#id222").hide();
n=0;
numeros.length = 0;
$("#idnumber").val("");
$("#idnumber").val(numeros);
 
});

en la sigieunte URL: http://12345.hostinazo.com

Pregunta: que esta mal que ............. numeros.length = 0; ........... no funciona en el boton Reset mientras que en Done si funciona ??

Por favor prueben y si pueden ayudarme se los agradecere de corazon.
Mis saludos y gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 302
Oro
Ha mantenido su posición en JQuery (en relación al último mes)
Gráfica de JQuery

Ayuda sobre codigo Jquery en website de prueba

Publicado por xve (673 intervenciones) el 04/09/2014 10:35:24
Hola tafuto, no entiendo muy bien tu código... creo que esto esta mal
1
numeros.length=0;

Creo que no puedes indicarle la longitud a un array... length, simplemente devuelve la longitud del array, pero no la puedes asignar.

Porque razón quieres poner la longitud del array a 0? lo quieres vaciar?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayuda sobre codigo Jquery en website de prueba

Publicado por tafufo (3 intervenciones) el 04/09/2014 17:24:44
Primeramente gracias por responder XVE:
Mis saludos:


Ok le elimine algo al codigo para que este mas claro y explicartelo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var numeros = [];
$( "#btndone" ).click(function() {
 
numeros.length = 0;
    $("#id1 > div").each(function(){
       if($(this).hasClass('verde')){
          numeros.push($(this).text());
       }
       });
 
 
$("#idnumber").val("");
$("#idnumber").val(numeros.join(" "));
 
});
 
 
$( "#btnreset" ).click(function() {
   $( "#id1 > div" ).addClass("blanco");
   $("#id222").hide();
n=0;
numeros.length = 0;
$("#idnumber").val("");


Primero declaro el array numeros vacio.
Luego la funcion al evento click del boton Done, cuando se hace click inicialmente el array esta vacio , pero luego para asegurarme que antes de introducir datos este vacio utilizo {{{{ numeros.length = 0; }}}} , entonces recorro todos los DIVs y el que tenga la ""clase verde"" guardo su valor en el array con push.
El boton Done funciona bien por primera vez , luego manualmente quito y pongo nuevos valores y funciona bien.


El problema esta en el boton Reset que cuando reseteo me carga en el array los numeros previamente presionados y cuando presiono Done aparecen todos esos numeros y en este caso como que {{{{{ numeros.length = 0;}}}}} dentro de la funcion del click del boton Done tampoco funciono.

He probado vaciar el array de esta otra manera {{{{{{ numeros = [ ]; }}}}}}}} y tampoc me ha dado resultado.
He probado hacerlo sin array sino sumando cadenas y nada.

Que opinas ???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 302
Oro
Ha mantenido su posición en JQuery (en relación al último mes)
Gráfica de JQuery

Ayuda sobre codigo Jquery en website de prueba

Publicado por xve (673 intervenciones) el 04/09/2014 19:31:46
Hola Tafufo... haber si me se explicar...

Esto no es un condicional:
1
numeros.length = 0;
Es una asignación/definición, donde indicas que el array numeros esta vacio!!!

Si quieres que sea una condición, tienes que hacer algo así:
1
2
3
4
if(numeros.length == 0)
{
...
}

Mira este código:
1
2
3
4
5
var numeros = [];
numeros.push("hola")
console.log(numeros.length);
numeros.length=0;
console.log(numeros.length);

Devuelve 1 y 0. Esto quiere decir, que cada vez que pones esto: numeros.length=0; vacías el array!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayuda sobre codigo Jquery en website de prueba

Publicado por tafufo (3 intervenciones) el 05/09/2014 07:21:01
Problema resuelto.......

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
var numeros = [];
$( "#btndone" ).click(function() {
 
numeros.length = 0;
    $("#id1 > div").each(function(){
       if($(this).hasClass('verde')){
          numeros.push($(this).text());
       }
       });
 
 
$("#idnumber").val("");
$("#idnumber").val(numeros.join(" "));
 
                                     });
 
 
 
$( "#btnreset" ).click(function() {
   $( "#id1 > div" ).removeClass("verde").addClass("blanco");
   $("#id222").hide();
n=0;
$("#idnumber").val("");
 
                                     });

faltaba algo de codigo, en la parte del reset, hay que quitar la """" clase verde"""" pq nada mas estaba agregandole la """"" la clase blanco """"" y asi a la vista, los cuadros se veian en blanco pero tenian oculto la clase """" verde """ y asi aunque vaciara el array , cuando presionara el boton Done iba a encontrarar mas de 3 elementos con clase """ verde """" y a todos los iba a meter en el array con push....

Gracias por tu tiempo XVE......
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 302
Oro
Ha mantenido su posición en JQuery (en relación al último mes)
Gráfica de JQuery

Ayuda sobre codigo Jquery en website de prueba

Publicado por xve (673 intervenciones) el 05/09/2014 08:31:07
Gracias por compartirlo tafufo!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar