Foros del Web » Programando para Internet » Javascript »

Objeto Link dentro de TD...no lo puedo recuperar.

Estas en el tema de Objeto Link dentro de TD...no lo puedo recuperar. en el foro de Javascript en Foros del Web. Hola, buenos días. Resulta que tengo un problema al momento de querer leer un hipervínculo que se encuentra dentro de una tabla. Este error no ...
  #1 (permalink)  
Antiguo 29/08/2009, 10:22
Avatar de Jad-Neo  
Fecha de Ingreso: octubre-2004
Mensajes: 344
Antigüedad: 19 años, 6 meses
Puntos: 0
Pregunta Objeto Link dentro de TD...no lo puedo recuperar.

Hola, buenos días. Resulta que tengo un problema al momento de querer leer un hipervínculo que se encuentra dentro de una tabla. Este error no me asoma en IE y Opera, pero en los demás si.

Para obtener la tabla, uso DOM (document.getElementById), la tabla tiene cierta estructura:

<table id="mi_tabla">
<tr>
<td><a href='...'>Vinculo 1</a></td>
</tr>
<!-- ...Siguen n cantidad de registros -->
</table>

Cuando intento obtener los childNodes de cada TD, en FireFox, Chrome y Safari me dice que no tiene nodos, y el mismo objeto TD me asoma como [object Text]; de hecho si utilizo la función td.hasChildNodes() me devuelve false.

En IE y Opera si puedo recuperarlos con td.childNodes[0]. Mi pregunta es...¿existe alguna forma de obtener un objeto Link dentro de un TD sin recurrir a la colección childNodes?
__________________
Nunca seas sabio en tu propia opinión.

Última edición por Jad-Neo; 29/08/2009 a las 10:31
  #2 (permalink)  
Antiguo 29/08/2009, 13:05
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Objeto Link dentro de TD...no lo puedo recuperar.

la verdad que todo depende de la estructura y tu necesidad. por ejemplo, en cuanto la estructura si la celda solamente contiene un link puedes usar firstChild en el TD. aunque aclaro que eso no va a resolver tu problema en los navegadores. evidentemente es porque estas haciendo referencia a uno nodo que no es. este problema se da porque diferentes navegadores generan un orden diferente en la estructura DOM. por ejemplo, iexplorer no genera nodos de textos vacios cuando en el codigo fuente aparecen como caracteres en blanco: espacio, tabular, etc.

otra alternativa es tomar todos los links de una vez con getElementsByTagName y te quitas el aquel de tener que recorrer la tabla por los nodos. llamas la funcion asi
Código:
enlaces = document.getElementById("mi_tabla").getElementsByTagName("a");
y finalmente, quizas te interese el articulo espacios en blanco en el DOM el cual habla lo que antes mencione y tambien presenta una solucion.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 29/08/2009, 13:09
Avatar de Jad-Neo  
Fecha de Ingreso: octubre-2004
Mensajes: 344
Antigüedad: 19 años, 6 meses
Puntos: 0
De acuerdo Respuesta: Objeto Link dentro de TD...no lo puedo recuperar.

Muchisimas gracias...lo voy a checar.
__________________
Nunca seas sabio en tu propia opinión.
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:57.