Foros del Web » Programando para Internet » Javascript »

consulta de getElementById

Estas en el tema de consulta de getElementById en el foro de Javascript en Foros del Web. tengo una tabla llena de cierots datos, pero me interesa el valor de un td específico al que le asigne un id="" como puedo obtener ...
  #1 (permalink)  
Antiguo 22/10/2004, 13:49
Avatar de wolf777  
Fecha de Ingreso: junio-2004
Ubicación: Bolivia
Mensajes: 199
Antigüedad: 19 años, 10 meses
Puntos: 0
consulta de getElementById

tengo una tabla llena de cierots datos, pero me interesa el valor de un td específico al que le asigne un id="" como puedo obtener el valor de ese td????

Debe ser algo muy simple:

Tabla:

Código HTML:
<table>
<tr><td id="hm_dato">&nbsp;</td></tr>
</table> 
En un momento dado la celda se llena de cierta información mediante un:
Código HTML:
document.getElementById('hm_dato').innerHTML="dato cualquiera";
Deseo obtene ese dato que se llena en esa celda como puedo obtenerlo mediante javascript obviamente...

Saludos
__________________
Do not let The Darknness Get You, to soon...
  #2 (permalink)  
Antiguo 22/10/2004, 14:09
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
¿No funciona con
var datoLeido = document.getElementById('hm_dato').innerHTML
  #3 (permalink)  
Antiguo 22/10/2004, 14:15
Avatar de wolf777  
Fecha de Ingreso: junio-2004
Ubicación: Bolivia
Mensajes: 199
Antigüedad: 19 años, 10 meses
Puntos: 0
Funciona pero disculpa la pregunta es necesario asignar ello a una variable???
por que deseaba mostrarlo directamente como:

Código HTML:
alert(document.getElementById('hm_dato').innerHTML);
y no muestra nada mas que object

Entonces eso significaria que solamente puedo utilizar su contenido asignando a variables o hay alguna manera directa de poder usarlo de esa forma sin variables receptoras???

/*Gracias Por la ayuda....*/

Saludos
__________________
Do not let The Darknness Get You, to soon...
  #4 (permalink)  
Antiguo 22/10/2004, 14:36
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
No, no creo que el problema sea tenerlo que asignar a una variable.
La cosa es que no conozco bien la instrucción innerHTML (que, por cierto, creo que sólo funciona en InternetExplorer).
Prueba a añadir innerHTML.value
  #5 (permalink)  
Antiguo 22/10/2004, 14:47
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Me he documentado sobre innerHTML y no creo que valga lo de .value

Si funciona con una variable, sigo sin ver por qué no de la otra forma, pero siempre puedes asignar la variable y luego
Código HTML:
alert(variable)
¿no?
  #6 (permalink)  
Antiguo 22/10/2004, 15:45
Avatar de wolf777  
Fecha de Ingreso: junio-2004
Ubicación: Bolivia
Mensajes: 199
Antigüedad: 19 años, 10 meses
Puntos: 0
si de esa forma funciona como te mencione solo al igual que tu tengo esa duda por que no funciona mostrando la tal cula como es...
__________________
Do not let The Darknness Get You, to soon...
  #7 (permalink)  
Antiguo 22/10/2004, 16:37
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Mira, wolf777, lo he probado y funciona también con el alert directo (en IE y en Firefox):

Código HTML:
<table>
<tr><td id="hm_dato">&nbsp;</td></tr>
</table>
<form>
<input type="text" value="" name="dato">
<input type="button" value="Poner dato" onClick="document.getElementById('hm_dato').innerHTML=this.form.dato.value">
<input type="button" value="Leer dato" onClick="alert(document.getElementById('hm_dato').innerHTML)">
</form> 
  #8 (permalink)  
Antiguo 23/10/2004, 07:25
Avatar de wolf777  
Fecha de Ingreso: junio-2004
Ubicación: Bolivia
Mensajes: 199
Antigüedad: 19 años, 10 meses
Puntos: 0
Ok Gracias lo voy a verificar!!!

Saludos
__________________
Do not let The Darknness Get You, to soon...
  #9 (permalink)  
Antiguo 23/10/2004, 18:37
 
Fecha de Ingreso: diciembre-2001
Ubicación: Asuncion
Mensajes: 143
Antigüedad: 22 años, 4 meses
Puntos: 1
No necesariamente tienes que usar algun identificador para el TD, solo pon a la tabla. Mira como lo hice:
Código PHP:
function muestra(){
    
num_fila 0;  //-- 0 representa la primera fila, el 1 la segunda, etc.
    
num_celda 0//-- 0 representa la primera celda de la fila
    
tabla document.getElementById("tabla1"); //-- tabla1 es el ID de la tabla
    
fila tabla.getElementsByTagName("TR")[num_fila];
    
celda fila.getElementsByTagName("TD")[num_celda];
    
alert(celda.innerText);

De esta manera puedes obtener el valor de cualquier TD indicandole el numero de fila y celda.
  #10 (permalink)  
Antiguo 23/10/2004, 20:41
Avatar de SiR.CARAJ0DIDA  
Fecha de Ingreso: junio-2004
Ubicación: Acá
Mensajes: 1.166
Antigüedad: 19 años, 9 meses
Puntos: 4
en esos casos no se usa "innerText"??
  #11 (permalink)  
Antiguo 24/10/2004, 04:36
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Muy majo tu código, taar.
La instrucción innerText "limpia" el contenido de la celda, dando sólo el texto, mientras que innerHTML incluye códigos HTML si los tiene.
La cosa es que innertText sólo funciona en Internet Explorer y no en Mozilla, Firefox etc.

Se podría como solución provisional:
Código:
	if (celda.innerText) { alert celda.innerText }
	else { alert celda.innerHTML }
  #12 (permalink)  
Antiguo 24/10/2004, 17:40
 
Fecha de Ingreso: diciembre-2001
Ubicación: Asuncion
Mensajes: 143
Antigüedad: 22 años, 4 meses
Puntos: 1
En realidad no conozco muy bien las especificaciones de Mozilla o Firefox porque no tengo instalado, entonces progongo una pequeña modificación para suprimir el uso de innerText o innerHTML.
Código PHP:
function muestra(){ 
    
num_fila 0;  //-- 0 representa la primera fila, el 1 la segunda, etc. 
    
num_celda 0//-- 0 representa la primera celda de la fila 
    
tabla document.getElementById("tabla1"); //-- tabla1 es el ID de la tabla 
    
fila tabla.getElementsByTagName("TR")[num_fila]; 
    
celda fila.getElementsByTagName("TD")[num_celda]; 
    
//alert(celda.innerText); 
    
alert(celda.childNodes[0].nodeValue);

Espero que esta vez funcione, prueben y me avisan
  #13 (permalink)  
Antiguo 25/10/2004, 16:03
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
De acuerdo

Perfecta esta nueva solución, taar
Funciona igual en IE 5.5 y en Firefox 1.0PR

  #14 (permalink)  
Antiguo 26/10/2004, 07:30
Avatar de wolf777  
Fecha de Ingreso: junio-2004
Ubicación: Bolivia
Mensajes: 199
Antigüedad: 19 años, 10 meses
Puntos: 0
Excelente eso ayuda mucho Tar, se agradece

Saludos
__________________
Do not let The Darknness Get You, to soon...
  #15 (permalink)  
Antiguo 26/10/2004, 14:31
Avatar de wolf777  
Fecha de Ingreso: junio-2004
Ubicación: Bolivia
Mensajes: 199
Antigüedad: 19 años, 10 meses
Puntos: 0
Taar, buena la solución pero ello engendro algunos problemillas logicos luego... que no se si puedes ayudarme a ver la solución.
Ej.
Usando el método que indicas se definen celdas de la tabla mediante fila y columna, que pasa en el caso de tablas irregulares osea celdas que abarcan mas celdas y otras menos como se podria hacer esas referencias???

Para que te ubiques mas lo que deseo hacer, te inido esta página:

http://hellomundo.colosa.net/signup.htm

Ingresa al Signup y selecciona cualquier plan luego aparece todo lo mencionado con respecto a JavaScript.

Saludos
__________________
Do not let The Darknness Get You, to soon...
  #16 (permalink)  
Antiguo 26/10/2004, 15:16
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola a todos:

Por la experiencia que tengo respecto al árbol de nodos de un documento html, recomiendo prudencia a la hora de usar la colección childNodes...
En explorer y en mozilla se valora de distinta manera algo tan básico como esto:
Código:
<td>
</td>
Aunque parezca una "chorrada"... un salto de linea en explorer no se considera y en mozilla/netscape se considera un nodo de texto... y el childNodes[0] puede ser tanto texto como otra etiqueta que a la vez pueda tener más cosas.

Dentro de una celda puede haber muchas cosas... si se quiere de una forma "plana", lo mejor es usar innerHTML, pero si se quieren más detalles, se torna bastante más complejo...

Les paso un Inspector DOM que presenté en estos foros hace ya algunos meses:
www.pepemolina.com/DOM

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #17 (permalink)  
Antiguo 26/10/2004, 20:26
Avatar de wolf777  
Fecha de Ingreso: junio-2004
Ubicación: Bolivia
Mensajes: 199
Antigüedad: 19 años, 10 meses
Puntos: 0
Muy Interesante Caricatos, revisare profundamente tu documento para informarme más, gracias

Saludos
__________________
Do not let The Darknness Get You, to soon...
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 13:32.