Comunidad de diseño web y desarrollo en internet

Contar los enlaces de varios parrafos

Citar            
MensajeEscrito el 18 Feb 2011 05:38 pm
Hola a todos.

A traves del DOM queria contar los los enlaces de varios parrafos agrupados con un contenedor y que los mostrara en pantalla a traves de un alert o creando un elemento y agregarle el contenido. Este es el codigo:

Código Javascript :

var contenedor = document.getElementById("contenido"); 
    var parrafos = contenedor.getElementsByTagName("p");
    
         for(i in parrafos){
            
           var enlaces = parrafos[i].getElementsByTagName("a");
           
       }    
       alert(enlaces.length);
.
si coloco el alert en el bucle me muestra la cantidad de enlaces por parrafos.

Y si bien podria usar un contador y luego mostrarlo, lo que quiero es usas la propiedad
length, que para eso está.
ME DOY CUENTA O CREO SABER CUAL ES EL ERROR: estoy inicializando el array en cada vuelta de bucle pero no me doy cuenta como arreglarlo:

Muchas gracias de antemano. Jorge.

Por Jorgesaw

2 de clabLevel



 

chrome
Citar            
MensajeEscrito el 18 Feb 2011 05:57 pm
Otra vez de nuevo:
estube probando y logre hacerlo con un contador; tambien le agregue un par de estilos sin importancia para lo que preguntaba.

Código Javascript :

 var contenedor = document.getElementById("contenido");
    var parrafos = contenedor.getElementsByTagName("p");
    
    var totalEnlaces = 0;
     for(var i=0; i<parrafos.length; i++){
        
       var enlaces = parrafos[i].getElementsByTagName("a");
       
         for(var j=0; j<enlaces.length; j++){
            
           enlaces[j].style.textDecoration = "none";
          enlaces[j].style.border = "1px solid #fff";
       }   
       totalEnlaces += j;
       /* alert(enlaces.length); */
    }   
    alert(totalEnlaces);


Muchas gracias igual; si alguien tiene algo mejor mande. Saludos.

Por Jorgesaw

2 de clabLevel



 

chrome
Citar            
MensajeEscrito el 21 Feb 2011 07:11 pm
Si quieres usar el length, siempre puedes usar un array y poner todos los links alli en caso quieras reusarlos en algun momento.

Código :

var totalEnlaces = [];

// dentro del loop de enlaces
totalEnlaces.push( enlaces[j] );

//fuera del loop
alert( totalEnlaces.length );

Por NEO_JP

BOFH

5825 de clabLevel

13 tutoriales
12 articulos

Genero:Masculino   Bastard Operators From Hell Anime Bloggers Premio_Secretos Team Cristalab

Front-end Developer en Washington, DC

chrome
Citar            
MensajeEscrito el 22 Feb 2011 01:31 am
Gracias NEO_JP; me funcionó perfecto.

Es la primera vez que mando una pregunta a un foro y me motiva saber que hay gente que puede darte una mano.

Recién estoy con empezando javaScript (hace 2 semanas) y de prueba en prueba te empezás a dar el bocho contro la pared.

Otra vez gracias!!!

Por Jorgesaw

2 de clabLevel



 

chrome
Citar            
MensajeEscrito el 22 Feb 2011 03:26 pm
Hey, pero ahora que leo bien la pregunta, sabes que seria mas facil? Buscar de frente todas las etiquetas <a> dentro de #contenido, en vez de las etiquetas <a>, dentro de <p>, dentro de #contenido. Se entiende?

Código Javascript :

var totalEnlaces = document.getElementById('contenido').getElementsByTagName('a').length;


Y bienvenido a Cristalab! :)

Por NEO_JP

BOFH

5825 de clabLevel

13 tutoriales
12 articulos

Genero:Masculino   Bastard Operators From Hell Anime Bloggers Premio_Secretos Team Cristalab

Front-end Developer en Washington, DC

chrome
Citar            
MensajeEscrito el 23 Feb 2011 04:20 pm
Tenés razón pero en el html que tengo hay varios enlaces en el contenedor y esos no quería contarlos; sólo los que estaban dentro de los parrafos.

En el html tenía un titulo y adentro un enlace por ejemplo.

Por eso, en este caso me sirve el código anterior.
Gracias igual!!!

Por Jorgesaw

2 de clabLevel



 

chrome
Citar            
MensajeEscrito el 23 Feb 2011 04:25 pm
Ah entiendo, suerte!

Por NEO_JP

BOFH

5825 de clabLevel

13 tutoriales
12 articulos

Genero:Masculino   Bastard Operators From Hell Anime Bloggers Premio_Secretos Team Cristalab

Front-end Developer en Washington, DC

chrome

   Página 1 de 1

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.