Foros del Web » Programando para Internet » Javascript »

Asignar variable al width de una celda

Estas en el tema de Asignar variable al width de una celda en el foro de Javascript en Foros del Web. Buenos días. Estoy teniendo problemas con un script ya que soy muy nuevo en esto. Ya tengo las funciones hechas y las hago correr en ...
  #1 (permalink)  
Antiguo 06/02/2009, 07:45
Avatar de _pitufo  
Fecha de Ingreso: enero-2009
Mensajes: 11
Antigüedad: 15 años, 3 meses
Puntos: 0
Pregunta Asignar variable al width de una celda

Buenos días. Estoy teniendo problemas con un script ya que soy muy nuevo en esto. Ya tengo las funciones hechas y las hago correr en onLoad luego lo que quiero hacer es utilizar una variable de esa función para asignarsela al width, al ancho de una celda. Me gustaría saber como es la sintaxis que debo utilizar, donde debo iniciar el bloque del <script ...> y donde terminarlo.

Probe con esto <td width=&{variable};> pero por alguna razón no me anduvo.

Agradecería muchísimo que alguien me pudiera ayudar.

Saludos
  #2 (permalink)  
Antiguo 06/02/2009, 07:59
 
Fecha de Ingreso: diciembre-2007
Ubicación: Barcelona
Mensajes: 289
Antigüedad: 16 años, 5 meses
Puntos: 8
Respuesta: Asignar variable al width de una celda

Hola,

Claro que no funcionó eso!!!

Tienes que acceder al objeto dinámicamente en el momento que tu quieras. Creo recordar que sería algo así:

Código PHP:
var x=document.getElementById('myTable').rows[0].cells;
x[0].width="valor"
Eso debes insertarlo en tu script o donde tu quieras pero que tengas acceso a la variable que contiene el nuevo valor del width de tu celda.

Siento si la sintaxi no es correcta, pero hace tiempo que no toco la programación web y tengo las cosas un poco olvidadas... De todas formas si ves que no te he sido de mucha ayuda por favor vuvle a psotear y intentaré mirarlo con más detalle.

Saludos.
  #3 (permalink)  
Antiguo 06/02/2009, 08:52
Avatar de _pitufo  
Fecha de Ingreso: enero-2009
Mensajes: 11
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Asignar variable al width de una celda

Muchas gracias mas o menos veo como viene la cosa, sin embargo no termino de entenderte. Pongo parte de mi código para que veas de que estamos hablando:
La variable de myWidth viene de otra funcion que es para obtener las dimensiones de la ventana (más bien el ancho). Debo modificar algo para poder usarla en esta nueva funcion?

Código:
(...)

function alertSize() {
  var myWidth = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
  } else if( document.documentElement && ( document.documentElement.clientWidth ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
  } else if( document.body && ( document.body.clientWidth ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
  }
}

function tabla() {
	var A = 125, B = 142, C = 109, D = 140, E = 104, F = 136, G = 119, H = 125;
	var I = 132, J = 337, K = 57, L = 19, M = 17, N = 18, O = 20;
	var myHeight = myWidth*0.6;
	var helpWidth = myWidth/1000, helpHeigth = myHeight/600;
	if( myWidth!=1000 && myWidth>800 ) {
	A = A*helpWidth; B = B*helpWidth; C = C*helpWidth; D = D*helpWidth; E = E*helpWidth; F = F*helpWidth; G = G*helpWidth; H = H*helpWidth;
	I = I*helpHeight; J = J*helpHeight; K = K*helpHeight; L = L*helpHeight; M = M*helpHeight; N = N*helpHeight; O = O*helpHeight;
	}
	else if( myWidth<=800 ) {
	myWidth=800;
	myHeight = myWidth*0.6;
	helpWidth = myWidth/1000; helpHeigth = myHeight/600;
	A = A*helpWidth; B = B*helpWidth; C = C*helpWidth; D = D*helpWidth; E = E*helpWidth; F = F*helpWidth; G = G*helpWidth; H = H*helpWidth;
	I = I*helpHeight; J = J*helpHeight; K = K*helpHeight; L = L*helpHeight; M = M*helpHeight; N = N*helpHeight; O = O*helpHeight;
	}
	else{}
}

</script>
</head>
<body bgcolor="#333333" onLoad=
"alertSize()"
"tabla()">

<table border="0" cellpadding="0" cellspacing="0" id="myTable">

las variables A B C ... son para los anchos de las columnas, y las I J K ... para las alturas de las filas.

Asumi que debo de ponerle a mi tabla id="myTable" luego no entiendo si esa var x de la que escribes es para "reconocer la tabla" o si debo sustituirla con mis A B Cs y mis I J K.

Muchísimas gracias de nuevo. Espero que puedas ayudarme.
  #4 (permalink)  
Antiguo 09/02/2009, 17:27
Avatar de _pitufo  
Fecha de Ingreso: enero-2009
Mensajes: 11
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Asignar variable al width de una celda

Por favor, necesito que alguien me lo explique para terminar un trabajo.
Espero poder contar con su ayuda, gracias.
  #5 (permalink)  
Antiguo 18/03/2009, 05:25
 
Fecha de Ingreso: diciembre-2007
Ubicación: Barcelona
Mensajes: 289
Antigüedad: 16 años, 5 meses
Puntos: 8
Respuesta: Asignar variable al width de una celda

Hola,

Siento el retraso, pero no he tenido tiempo para mirar el foro...

Respecto a lo del ID de tu tabla si, donde pone myTable debes poner el ID que tenga tu tabla. La variable x, contiene todas las celdas de la fila 0 de tu tabla. Por lo que cambiando el índice de x[] podrás acceder a cada una de las celdas y cambiar la propiedad que quieras (en tu caso el width).

Aun no tengo claro que quieres hacer con tu variable myWidth, pero si lo que quieres hacer es cambiar el width de tu tabla o de alguna celda debes hacerlo como te indiqué en mi primer post.

Por ejemplo:

x[0].width=myWidth;

Con eso cambiarias el width de la primera celda de la primera fila de tu tabla.

Espero que esta vez te haya sido de ayuda.
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:08.