Foros del Web » Programando para Internet » Javascript »

pinche for

Estas en el tema de pinche for en el foro de Javascript en Foros del Web. Hola, hace rato que no hago esto y estoy oxidado, astante oxidado, al punto que un for me ponga problemas :( bueno... este es el ...
  #1 (permalink)  
Antiguo 06/11/2011, 17:23
 
Fecha de Ingreso: noviembre-2011
Mensajes: 12
Antigüedad: 12 años, 5 meses
Puntos: 0
pinche for

Hola, hace rato que no hago esto y estoy oxidado, astante oxidado, al punto que un for me ponga problemas :( bueno... este es el punto

comparar dos cadenas de texto

Código:
<script type="text/javascript">
var enlaces = document.getElementsByTagName("a");
var dir = "http://www.prueba";
var numero = 0;

for (i=0; i <6 ;i=i+1)
{	
	b = enlaces[i].toString();
	c = b.slice(0,17);
		if (c==dir)
		{
		numero = numero + 1;
		}
		// alert(numero+" veces fueron iguales");
                //aqui funciona, pero sale cada ves que pasa por el for (no me sirve)

}
// alert(numero+" veces fueron iguales");
//aqui que es donde lo quiero, no funciona

</script>
  #2 (permalink)  
Antiguo 06/11/2011, 18:20
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: pinche for

Hola:

Hay algún "href" ¿?

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 06/11/2011, 18:41
 
Fecha de Ingreso: noviembre-2011
Mensajes: 12
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: pinche for

SI, si hay "href"
aqui el completo
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
<head>
<title>prueba</title>


</head>

<body>

<a href="http://www.prueba1.com">1 aa</a>
<a href="http://www.prueba2.com">2 t</a>
<a href="http://www.prueba3.com">3</a>
<a href="http://www.prueba4.com">4</a>
<a href="http://www.prueba5.com">5</a> 
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. var enlaces = document.getElementsByTagName("a");
  3. var dir = "http://www.prueba";
  4. var numero = 0;
  5.  
  6. for (i=0; i <6 ;i=i+1)
  7. {  
  8.     b = enlaces[i].toString();
  9.     c = b.slice(0,17);
  10.         if (c==dir)
  11.         {
  12.         numero = numero + 1;
  13.         }
  14.         alert(numero+" veces fueron iguales");
  15. }
  16.  
  17.  
  18. </script>




</body>
</html>

Última edición por mrkin; 07/11/2011 a las 06:59
  #4 (permalink)  
Antiguo 07/11/2011, 16:52
 
Fecha de Ingreso: noviembre-2011
Mensajes: 12
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: pinche for

Cual será el problema?
quien me ayuda?
:(
bloqqueado!!!
  #5 (permalink)  
Antiguo 07/11/2011, 16:57
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: pinche for

Hola:

Parece que no te has enterado de la solución... o al menos una cosa que tienes mal...

donde pones:
Código:
 b = enlaces[i].toString();
debes cambiar toString() por href.

enlaces[i] es un nodo del tipo enlace (yag a), y del nodo creo que solo te interesa el atributo href.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 07/11/2011, 17:14
 
Fecha de Ingreso: noviembre-2011
Mensajes: 12
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: pinche for

Nada, cambie el
b = enlaces[i].toString();
por
b = enlaces[i].href;
sin embargo sigue el mismo problema
Código Javascript:
Ver original
  1. alert(numero+" veces fueron iguales");
no funciona fuera del for
  #7 (permalink)  
Antiguo 07/11/2011, 17:23
 
Fecha de Ingreso: noviembre-2011
Mensajes: 12
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: pinche for

es como si la variable desapareciera cuando se acaba el for!
:(
  #8 (permalink)  
Antiguo 07/11/2011, 17:37
 
Fecha de Ingreso: noviembre-2011
Mensajes: 12
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: pinche for

El problema es otro,

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. var enlaces = document.getElementsByTagName("a");
  3. var dir = "http://www.prueba";
  4. var numero = 0;
  5.  
  6. for (i=0; i <6 ;i++)
  7. {  
  8.     b = enlaces[i].href;
  9.     c = b.slice(0,17);
  10.         if (c==dir)
  11.         {
  12.         numero = numero + 1;
  13.         //document.write(numero);
  14.         }
  15.    
  16. }
  17. document.write("hola");//no escribe el   "hola"
  18.  
  19. //alert(numero+" veces fueron iguales");
  20. </script>
  21.  
  22.  
  23.  
  24. </body>
  25. </html>
  #9 (permalink)  
Antiguo 07/11/2011, 20:32
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: pinche for

A ver esto:
Código HTML:
Ver original
  1. <!DOCTYPE HTML>
  2. <html lang="es-MX">
  3.     <meta charset="UTF-8">
  4.     <title>Prueba Enlaces</title>
  5. </head>
  6.     <a href="http://www.test.com">1</a>
  7.     <a href="http://www.test.com">2</a>
  8.     <a href="http://www.test.com">3</a>
  9.     <a href="http://www.test.com">4</a>
  10.     <a href="http://www.test.com">5</a>
  11.    
  12.     <script type="text/javascript">
  13.         var numero = 0;
  14.         for(i=0;i<document.links.length;i++){
  15.             b = document.links[i].href;
  16.             c = b.slice(0,15);
  17.             if(c.toString() == "http://www.test"){
  18.                 numero++;
  19.                 }
  20.             }
  21.         alert(numero);
  22.     </script>
  23. </body>
  24. </html>

Creo que el problema es cómo estás comparando las cadenas.

Saludos
__________________
Grupo Telegram Docker en Español
  #10 (permalink)  
Antiguo 08/11/2011, 01:02
 
Fecha de Ingreso: junio-2011
Ubicación: New York City
Mensajes: 13
Antigüedad: 12 años, 10 meses
Puntos: 3
Respuesta: pinche for

Lo primero:

* Antes de operar con el DOM, debes estar seguro que ha sido cargado y esta listo. Para esto puedes agregar un event handler usando window.onload (alternativamente, lo mejor seria usar el metodo addEventListener de la especificación del DOM Level 2)

* para obtener el attributo de un nodo de DOM debes usar el metodo getAttribute(<attributo>)

* El for loop se ejecuta mas veces del numero necesario, lo cual provoca un error.

Este código funciona:

Código Javascript:
Ver original
  1. window.onload = function(){
  2.     var enlaces = document.getElementsByTagName("a");
  3.     var dir = "http://www.prueba";
  4.     var numero = 0;
  5.     var b, c;
  6.  
  7.     for (var i = 0, l = enlaces.length; i < l ;i++){  
  8.         b = enlaces[i].getAttribute('href');
  9.         c = b.slice(0,17);
  10.         if (c === dir) { numero++; }
  11.     }
  12.     alert(numero + " veces fueron iguales");
  13. };


Código HTML:
Ver original
  1. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
  2.   <head>
  3.     <title>prueba</title>
  4.     <script type="text/javascript">
  5.       // codigo aca
  6.     </script>
  7. </head>
  8.  
  9.  
  10.   <a href="http://www.prueba1.com">1 aa</a>
  11.   <a href="http://www.prueba2.com">2 t</a>
  12.   <a href="http://www.prueba3.com">3</a>
  13.   <a href="http://www.prueba4.com">4</a>
  14.   <a href="http://www.prueba5.com">5</a>
  15.  
  16.  
  17. </body>
  18. </html>
  #11 (permalink)  
Antiguo 08/11/2011, 01:38
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: pinche for

Hola:

Cita:
Iniciado por JaiMe_ Ver Mensaje
* para obtener el attributo de un nodo de DOM debes usar el metodo getAttribute(<attributo>)
Para los atributos normales "estándar y no conflictivos", basta con la sintaxis del punto como el href de los enlaces.

setAttribute y getAttribute son muy útiles para añadir/leer nuestros propios atributos...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #12 (permalink)  
Antiguo 08/11/2011, 08:44
 
Fecha de Ingreso: noviembre-2011
Mensajes: 12
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: pinche for

GRACIAS a todos, ya funcionó, muy didacticos :)

Etiquetas: 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 18:37.