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.