Foros del Web » Programando para Internet » Javascript »

Llamar elementos por sus clases (class)

Estas en el tema de Llamar elementos por sus clases (class) en el foro de Javascript en Foros del Web. Hola, Quisiera saber si alguien conoce alguna manera de llamar por javacript a elementos del documento que tengan una misma clase (class) y no por ...
  #1 (permalink)  
Antiguo 25/02/2009, 05:32
 
Fecha de Ingreso: enero-2004
Mensajes: 22
Antigüedad: 20 años, 3 meses
Puntos: 0
Llamar elementos por sus clases (class)

Hola,

Quisiera saber si alguien conoce alguna manera de llamar por javacript a elementos del documento que tengan una misma clase (class) y no por Id.

Por ejemplo.. todos los divs que tenga class="texto"..

Gracias.
  #2 (permalink)  
Antiguo 25/02/2009, 06:27
Avatar de Calichin  
Fecha de Ingreso: febrero-2009
Mensajes: 8
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Llamar elementos por sus clases (class)

Hola chewbacca,
en partucular yo me encontré con esa misma pregunta en una ocasión, en verdad eso no es tan complicado es solo recorrer los elementos, lo hacemos con document.getElementsByTagName(*); o all en IE, luego recorremos los elementos con elemetosx.className == "clase", esta la almacenamos a un array y lo mostramos :), ahí esta los que buscas, className.

Umm esto los Framework lo hacen con mucha facilidad.

Espero hacer despertado tus expectativas, saludos.
  #3 (permalink)  
Antiguo 25/02/2009, 07:52
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Llamar elementos por sus clases (class)

Hola chewbacca

Aqui te dejo una funcion en JS, espero te sirva

JAVASCRIPT

Código:
<script language="javascript" type="text/javascript">
function _getElementsByClassName(clsName,tag)
{
    var arrayElements = new Array();
	if (tag == null){ tag="*";}
    var elements = document.getElementsByTagName(tag);

    for(var i = 0;i < elements.length;i++)
	{
        if(elements[i].className.indexOf(" ") >= 0)
		{
            var classes = elements[i].className.split(" ");
            for(var j = 0;j < classes.length;j++)
			{
                if(classes[j] == clsName)
                    arrayElements.push(elements[i]);
            }
        }
        else if(elements[i].className == clsName)
            arrayElements.push(elements[i]);
    }

	for (element in arrayElements){
		alert(arrayElements[element].innerHTML);
	}
	
}
</script>
HTML
Código:
<p class="green">PHP</p>
<p class="red">ASP</p>
<p class="black">VB6</p>
<p class="green">C</p>
<div class="green">JAVASCRIPT</div>
<form>
<input type="button" name="clases" value="enviar" onclick="_getElementsByClassName('green');" />
</form>
La funcion recibe como parametros el nombre de la clase que quieres buscar y el tag o etiqueta HTML por la que quieres filtrar si dejas el parametro tag null busca en todos los elementos del documento. Al final devuelve un array con los elementos.

Espero tus comentarios.

Saludos

Fenris
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:41.