Foros del Web » Programando para Internet » Javascript »

rellenar un array con getElementsByClassName

Estas en el tema de rellenar un array con getElementsByClassName en el foro de Javascript en Foros del Web. Hola a todos, es algo básico, pero no entiendo pq en Mozilla me funciona y en iexplorer7 no. tengo esto: Código: function cambiarTitulos(){ var contador; ...
  #1 (permalink)  
Antiguo 11/10/2009, 12:15
 
Fecha de Ingreso: mayo-2008
Mensajes: 6
Antigüedad: 16 años
Puntos: 0
rellenar un array con getElementsByClassName

Hola a todos, es algo básico, pero no entiendo pq en Mozilla me funciona y en iexplorer7 no.

tengo esto:

Código:
function cambiarTitulos(){
	var contador;
	contador = document.getElementsByClassName("posicion");		

	for (i=0;i<=5;i++ )
	{
		contador[i].id = i;		
	}
	document.getElementById('0').innerHTML = "<img src='images/logos/logo.jpg' alt='volver a la home'>";
	document.getElementById('1').innerHTML = "Pub";
	document.getElementById('2').innerHTML = "Ubicación";
	document.getElementById('3').innerHTML = "Sesiones y eventos";
	document.getElementById('4').innerHTML = "Residentes";
	document.getElementById('5').innerHTML = "Galeria";
}
como dije en mozilla funciona perfectamente, pero en internet explorer me da un error en:

Código:
contador = document.getElementsByClassName("posicion");
esta comprobado que es ahí, he puesto:

Código:
alert('entra');
contador = document.getElementsByClassName("posicion");	
alert('sale');
y el segundo alert no se llega a ver.

a alguien se le ocurre una solución?, muchas gracias
  #2 (permalink)  
Antiguo 11/10/2009, 12:35
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: rellenar un array con getElementsByClassName

Estas seguro que asi se puede seleccionar el atributo id?

Cita:
contador[i].id = i;
Fijate en que linea te da el error explorer, y chequea el codigo fuente desde el internet explorer. Ahi vas a saber puntualmente en cual linea hay error.
  #3 (permalink)  
Antiguo 11/10/2009, 12:39
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: rellenar un array con getElementsByClassName

En explorer hay que definir document.getElementsByClassName (no es nativa). Probá así:
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
<script>
if(typeof(document.getElementsByClassName) != 'function') {
  	document.getElementsByClassName = function (cn) {
		var rx = new RegExp("\\b" + cn + "\\b"), allT = document.getElementsByTagName("*"), allCN = [], i = 0, a;
			while (a = allT[i++]) {
			  if (a.className && a.className.indexOf(cn) + 1) {
				if(a.className===cn){ allCN[allCN.length] = a; continue;   }
				rx.test(a.className) ? (allCN[allCN.length] = a) : 0;
			  }
			}
		return allCN;
	}
}
onload=function(){
	var c=document.getElementsByClassName('pp'),i=-1;
	while(c[++i])
		alert(c[i].innerHTML);
	
}
</script>
</head>

<body>
<span class="pp">a</span>
<span class="pp">b</span>
<span class="pp">c</span>
</body>
</html>
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 22:08.