Foros del Web » Programando para Internet » Javascript »

Acceder al último td de un tr al onmouseover

Estas en el tema de Acceder al último td de un tr al onmouseover en el foro de Javascript en Foros del Web. Hola compañeros, sabeis si es posible acceder al ultimo td de un tr a través del onmouseover? Lo que pretendo es cambiar el fondo de ...
  #1 (permalink)  
Antiguo 24/05/2011, 18:44
 
Fecha de Ingreso: enero-2010
Mensajes: 389
Antigüedad: 14 años, 3 meses
Puntos: 4
Acceder al último td de un tr al onmouseover

Hola compañeros,

sabeis si es posible acceder al ultimo td de un tr a través del onmouseover?

Lo que pretendo es cambiar el fondo de todos los ultimos td pertenecientes a cada uno de los tr de una tabla, lo he intentado con this.last-child... pero no es válido.

Un saludo!
  #2 (permalink)  
Antiguo 24/05/2011, 19:04
 
Fecha de Ingreso: mayo-2011
Mensajes: 171
Antigüedad: 12 años, 11 meses
Puntos: 32
Respuesta: Acceder al último td de un tr al onmouseover

last-child es CSS no javascript

se puede acceder a cualquier nodo mediante el DOM
ejemplo:
Código HTML:
Ver original
  1. <p>mi P uno</p>
  2. <p>mi P dos</p>
  3. ....

Código Javascript:
Ver original
  1. alert(document.getElementsByTagName('p')[0].innerHTML);// <-- esto me daría "mi P uno"
  2. alert(document.getElementsByTagName('p')[1].innerHTML);// <-- esto me daría "mi P dos"
  3. // y así sucesivamente

has lo mismo pero con tus tablas...

pero acceder de esta forma es demasiado tedioso ya que puedes aumentar de contenido dinamicamente y ello te llevaría a modificar todo el JS,
mejor hazlo así
-> Colocas un id al padre principal
-> accedes a ese padre por js con getElementById
-> cuentas cuantos td hay por medio de length
-> y a este conteo le restas uno y ya tendrás el ultimo
-> y al final a todos los últimos le cambias de color con la propiedad style de js
  #3 (permalink)  
Antiguo 24/05/2011, 19:36
 
Fecha de Ingreso: enero-2010
Mensajes: 389
Antigüedad: 14 años, 3 meses
Puntos: 4
Respuesta: Acceder al último td de un tr al onmouseover

Gracias por tu respuesta dukeblass.

Siempre será el tercer td de cada tr, probé tu script y funciona perfecto pero como hacer para que al onmouseover de cualquiera de los tr cambie el estilo del último td de todos los tr?

He probado con document.getElementsByClassName aplicando la clase ultimo a cada uno de los últimos td y llamando a una funcion js al onmouseover de cada tr pero no funciona
  #4 (permalink)  
Antiguo 24/05/2011, 21:44
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 18 años, 11 meses
Puntos: 79
Respuesta: Acceder al último td de un tr al onmouseover

que tal, siempre he dicho que un ejemplo vale por mil palabras...

http://perr0.netii.net/exs/ultimotr.php

estudialo, mira que es simple...

si era otra cosa, sorry

salu2

fe de perratas: deberia ser por correcta sintaxis cambiarultimotd, pero yo el tonto le puse cambiarultimotr (se entiende)
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #5 (permalink)  
Antiguo 24/05/2011, 23:31
 
Fecha de Ingreso: noviembre-2005
Mensajes: 426
Antigüedad: 18 años, 5 meses
Puntos: 87
Respuesta: Acceder al último td de un tr al onmouseover

Cita:
last-child es CSS no javascript
Mmmm... Javascript en sus ultimas versiones esta inclinado a usar selectores CSS en funciones tales como querySelectorAll() entre otras (y claro, uno de estos selectores es last-child). Pero todavía mucha gente usa navegadores antiguos por lo que todavía no es buena idea utilizarlo.

Respecto a la pregunta original:
Código Javascript:
Ver original
  1. var tds = document.getElementsByTagName("td");
  2.  
  3.     for(var i = 0; i<tds.length; i++){
  4.         tds[i].onmouseover = cambiar_color
  5.     }
  6.    
  7.     function cambiar_color(){
  8.        
  9.     for(i = 0; i<tds.length; i++){
  10.         tds[i].style.backgroundColor = "white"
  11.     }
  12.  
  13.     var esta_fila = this.parentNode.getElementsByTagName("td");
  14.         esta_fila[esta_fila.length-1].style.backgroundColor = "red"
  15.     }

Eso es todo.
  #6 (permalink)  
Antiguo 25/05/2011, 04:58
 
Fecha de Ingreso: mayo-2011
Mensajes: 171
Antigüedad: 12 años, 11 meses
Puntos: 32
Respuesta: Acceder al último td de un tr al onmouseover

Cita:
Iniciado por InKarC Ver Mensaje
Mmmm... Javascript en sus ultimas versiones esta inclinado a [URL="http://www.javascriptkit.com/dhtmltutors/css_selectors_api.shtml"]usar selectores CSS[/URL] en funciones tales como querySelectorAll() entre otras (y claro, uno de estos selectores es last-child). Pero todavía mucha gente usa navegadores antiguos por lo que todavía no es buena idea utilizarlo.
.


ya pero el querySelectorAll es recién ...... y hasta que se implementen .
son selectores al estilo jquery, que usan CSS para captar...
  #7 (permalink)  
Antiguo 25/05/2011, 19:56
 
Fecha de Ingreso: enero-2010
Mensajes: 389
Antigüedad: 14 años, 3 meses
Puntos: 4
Respuesta: Acceder al último td de un tr al onmouseover

Interesante tu método Perr0, es nuevo ese método? lo digo por la compatibilidad ante navegadores.

InKarC lo que me propones es mas o menos lo que quiero hacer, pero como decía, tengo una tabla con varios tr que a su vez tienen 3 td cada uno. Quiero cambiar el fondo de todos los últimos td de cada tr al posicionar el puntero sobre cualquiera de los tr no solo cambiar el último td del tr sobre el que se posiciona.

Gracias a ambos por vuestras respuestas.

Etiquetas: acceder, onmouseover
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:26.