Reglamento general de los foros   •   FAQ   •   Buscar en el foro •  Registrarse | Iniciar sesión 



Foros Linux » Desarrollo » Programación


Nuevo tema Responder al tema
 [ 4 mensajes ] 
Patrocinadores

Autor
Buscar:
Mensaje

Desconectado
Forista Mayor
Forista Mayor
Avatar de Usuario

Registrado: Sab Ago 12, 2006 11:00 pm
Mensajes: 897
Ubicación: Toronto, Canada

Nota Publicado: Sab Sep 10, 2011 2:46 pm 
Arriba  
Hola a todos!

estoy usando JavaScript para modificar el estilo de una pagina y me esta costando un poco. El script es muy sencillo, calcula el tamanio de la pantalla del cliente y luego con esos valores calcula el centro (de arriba a abajo) y el tamanio de las celdas (dividiendo el ancho entre el numero de celdas)

Cuando ejecuto esta funcion:
Código:
function posision(){
          var clientHeight = window.innerHeight;
          var clientWidth = window.innerWidth;
          var headers = document.getElementsByTagName('th');
          var datas = document.getElementsByTagName('td')
          var posY = 0;
          var posX = 0;
          var i =0;

          clientWidth = window.innerWidth;

          posY = (clientHeight/2) +'px';
          posX = (Math.floor(clientWidth/7)) +'px';

          document.getElementById('DIV').style.position = 'absolute';
          document.getElementById('DIV').style.top = posY;
          for(i=0; i<=7; i++){
                    headers[i].setAttribute('width', posX);
                    datas[i].setAttribute('width', posX);
          }
}


me sale el siguiente error

Citar:
TypeError: headers[i] is undefined
[Break On This Error] headers[i].setAttribute('width', posX);


alguien me podria indicar donde esta el error?

Editado -- Sab Sep 10, 2011 4:46 pm --

acabo de modificar la funcion de la siguiente manera
Código:
var clientHeight = window.innerHeight;
          var clientWidth = window.innerWidth;
          var headers = document.getElementsByTagName('th');
          var datas = document.getElementsByTagName('td')
          var posY = 0;
          var posX = 0;
          var i =0;

          clientWidth = window.innerWidth;

          posY = (Math.floor(clientHeight/2)) +'px';
          posX = (Math.floor(clientWidth/7)) +'px';

          document.getElementById('DIV').style.position = 'absolute';
          document.getElementById('DIV').style.top = posY;

                    headers[0].style.width = posX;
                    headers[1].style.width = posX;
                    headers[2].style.width = posX;
                    headers[3].style.width = posX;
                    headers[4].style.width = posX;
                    headers[5].style.width = posX;
                    headers[6].style.width = posX;
                    datas[0].style.width = posX;
                    datas[1].style.width = posX;
                    datas[2].style.width = posX;
                    datas[3].style.width = posX;
                    datas[4].style.width = posX;
                    datas[5].style.width = posX;



//for(i=0; i<=headers.length; i++){datas[i].setAttribute('width', posX);


}



la variable i es la que me esta dando el problema, que tiene de malo???

_________________
La Hora Mas oscura es una antes de que Amanesca (Anonimo)


Última edición por Juanp_1982 el Lun Sep 12, 2011 12:51 am, editado 1 vez en total
 Perfil  

Desconectado
Moderador
Moderador
Avatar de Usuario

Registrado: Dom Abr 18, 2010 4:30 pm
Mensajes: 2790
Ubicación: En una de las nalgas del culo del mundo (según la Bersuit Vergarabat)

Nota Publicado: Sab Sep 10, 2011 2:47 pm 
Arriba  
me parece que confundes el concepto de array con variables -> headers[i] eso seria un array pero no veo que contenga una matriz

_________________
... reinstalar un SO cuando produce un error es como tirar un bebe a la basura cuando se hace caca..

Trusted Network and Developer | Reglamento General de los Foros |WIKI-EL | Twitter @SISIAM
Debian| ArchLinux |Linux User #508809

 Perfil WWW  

Desconectado
Moderador
Moderador
Avatar de Usuario

Registrado: Mié Nov 28, 2007 12:00 am
Mensajes: 1361
Ubicación: En la X del explorer (pulse para llamar)

Nota Publicado: Sab Sep 10, 2011 3:44 pm 
Arriba  
Uno de tantos errores estúpidos que se pasan por alto...

Si i<=7, entonces también accedes a la posición 7 del array (headers[7]) cosa que según parece, no está definida. Lo mismo ocurre con i<=headers.length (en este caso también es 7).
Basta con cambiar la condición a un menor estricto (i<headers.length)

_________________
Descargue el gestor de mp3 "Music Manager" -> (mmlf)
Última versión del gestor "Music Manager" -> (jmmm)

 Perfil  

Desconectado
Forista Mayor
Forista Mayor
Avatar de Usuario

Registrado: Sab Ago 12, 2006 11:00 pm
Mensajes: 897
Ubicación: Toronto, Canada

Nota Publicado: Lun Sep 12, 2011 12:50 am 
Arriba  
Muchas Gracias akodo!!!!!!! solventado!!!!!

_________________
La Hora Mas oscura es una antes de que Amanesca (Anonimo)

 Perfil  
Mostrar mensajes previos:  Ordenar por  
 [ 4 mensajes ] 
Nuevo tema Responder al tema

Saltar a:  


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados

No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group :: Style based on FI Subice by phpBBservice.nl :: Todos los horarios son UTC - 6 horas
Traducción al español por Huan Manwë
phpBB SEO