Foros del Web » Programando para Internet » Javascript »

Duda de Javascript y DOM...

Estas en el tema de Duda de Javascript y DOM... en el foro de Javascript en Foros del Web. Hola! Estoy empezando en esto del manejo del DOM y necesito que me echeis una mano. Resulta que necesito hacer un script para ejecutarlo con ...
  #1 (permalink)  
Antiguo 17/04/2008, 06:07
 
Fecha de Ingreso: abril-2008
Mensajes: 20
Antigüedad: 16 años
Puntos: 0
Duda de Javascript y DOM...

Hola!

Estoy empezando en esto del manejo del DOM y necesito que me echeis una mano.

Resulta que necesito hacer un script para ejecutarlo con Greasemonkey el cual debe extraer los platos de un menú, para luego modificar las celdas de la tabla añadiéndole un enlace a google que consulte la receta de los mismos.

La estructura aproximada del arbol donde se encuentran los datos es la siguiente:

<body>
<div...
<div...
.
.
.
<table>
<tbody>
<td width="19%" valign="top" rowspan="2">
<p align="center">
<b>Lunes</b>
</p>
</td>
<td width="81%" valign="top" colspan="2">
<p>EMPEDRADO DE JUDIAS</p>
</td>
.
.
.


Entonces, lo que quiero hacer es modificar sólo los platos, los cuales puedo distinguir porque siempre tienen colspan="2", discriminando luego la cadena "PAN, VINO Y POSTRE", a la que no le haré nada, puesto que no hay nada que decir :p.

La primera parte del código que implemento en el script se encarga de recoger los distintos platos, y puesto que no me funciona, pues a ver si me podeis empezar a ayudar por ahi... He aquí el trozo de código:

var encab = document.getElementsByTagName('h1'); //Obtenemos el titulo, alojada en la etiqueta 'h1'
alert("titulo: " + encab);
var celdas = document.getElementsByTagName('td'); //Obtenemos todas las celdas de la tabla
var nodostabla = new Array;
for ( var i = 0; i < celdas.length; i++ ) {
var atrib = celdas[i].getAttribute('colspan');
alert("atribut: " + atrib);
if ( atrib == 2 ) { // Solo queremos las celdas de la 2a columna
var thisCelda = celdas[i].getElementsByTagName('p');
alert("thiscelda: " + thisCelda);
if ( thisCelda != "PAN, VINO Y POSTRE") {
nodostabla[i] = thisCelda[0];
alert("Celda:" + nodostabla[i]);
}
}
}


Pero no se como visualizar el contenido del parrafo, por lo que en los alerts que he puesto me sale:

[object XPCNativeWrapper [object HTMLColection]] para los primeros, o [object XPCNativeWrapper [object HTMLParagraphElement]] para el ultimo, y sólo veo el correcto funcionamiento en getAttribute, que me devuelve un valor correcto con él entra o no en el if.

Bueno, a ver si me podeis echar una manita. Sé que será muy básico, pero ya digo que estoy empezando.

Muchas Gracias de antemano.

Saludos,

Alvaro.
  #2 (permalink)  
Antiguo 17/04/2008, 06:24
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: Duda de Javascript y DOM...

Hola sir_alvarix

En esta línea lo que obtienes no es un texto, sino un objeto:

Código:
var encab = document.getElementsByTagName('h1');
Para obtener lo que contiene esa etiqueta, tienes que poner:

Código:
var encab = document.getElementsByTagName('h1')[0].innerHTML;
Espero que esto te sirva de orientación. Saludos,
  #3 (permalink)  
Antiguo 17/04/2008, 08:07
 
Fecha de Ingreso: abril-2008
Mensajes: 20
Antigüedad: 16 años
Puntos: 0
Re: Duda de Javascript y DOM...

Muchas gracias por la ayuda

Voy a ver si arreglo eso y sigo avanzando.

Saludos.
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 16:55.