Foros del Web » Programando para Internet » Javascript »

object e innerText

Estas en el tema de object e innerText en el foro de Javascript en Foros del Web. Hola amigos, ya lleva varias horas peleando con mi javascript, tengo un objecto que lo obtengo haciendo uso de DOM Código: nombre = elementos.getElementsByTagName('nombre')[0] luego ...
  #1 (permalink)  
Antiguo 29/10/2009, 13:55
Avatar de Miuler  
Fecha de Ingreso: noviembre-2003
Mensajes: 7
Antigüedad: 21 años
Puntos: 0
Pregunta object e innerText

Hola amigos, ya lleva varias horas peleando con mi javascript, tengo un objecto que lo obtengo haciendo uso de DOM

Código:
nombre = elementos.getElementsByTagName('nombre')[0]
luego en Firefox uso:
Código:
console.log(nombre.textContent);
y me da lo que yo quiero, pero cuando intento algo similar en IE usando innerText en ves de textContent, y simplemente me dice que no esta definido, que no existe,
me da error, luego de revisar y revisar, nombre no es un valor nulo, segun console.log s un [object]

Ahora, haciendo pruebas en una pagina.html donde adentro tengo un tag <div>Miuler</div> y otro mas con <nombre>Miuler</nombre> me da el siguiente resultado:
* Si hago el documents.getelementsByTagName('div')[0].innerText todo bien, funciona.

* Pero si intento hacer lo mismo documents.getelementsByTagName('nombre')[0].innerText con el tag nombre me da error

Lo unico que quiero hacer, es obtener el texto dentro del tag <nombre></nombre> osea Miuler, cual seria la forma correcto de hacerlo? Como obtengo el texto que esta dentro de documents.getelementsByTagName('div')[0] ??
  #2 (permalink)  
Antiguo 29/10/2009, 14:15
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: object e innerText

Hola

Prueba con document.getElementById("nombre").innerHTML

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 29/10/2009, 16:14
Avatar de Miuler  
Fecha de Ingreso: noviembre-2003
Mensajes: 7
Antigüedad: 21 años
Puntos: 0
Respuesta: object e innerText

Gracias por responder pero no podría hacer uso de getElementById, ya que estoy tratando de sar dato de un elemento que me pasan por medio de javascript, para ser mas exactos es un elemento devuelto por un store de la libreria ExtJS, este elemento es un elemento de un xml, y este xml no tiene id.
Por otro lado aunque así fuera, tampoco funciona con tags no standard, ya hice la prueba con un prueba.html y desde la consola de IE8 y no retorna nada en cambio en firefox y google chrome si funciona, alguna idea?

¿Alguien conoce una forma de editar elementos dentro de tags no estandares?

Última edición por Miuler; 29/10/2009 a las 16:22
  #4 (permalink)  
Antiguo 29/10/2009, 16:27
Avatar de Miuler  
Fecha de Ingreso: noviembre-2003
Mensajes: 7
Antigüedad: 21 años
Puntos: 0
Pregunta ¿Alguien conoce una forma de sacar texto de elementos dentro de tags no estandar?

Hola amigos, tengo el siguiente problema, tengo que sacar la informacion que viene dentro de un tag no estandar, para esto uso getElementsByTagName('data')[0].innerText y no funciona, también intente con innerHTML y hasta con getElementById (no lo puedo usar pero igual probé) y no funciona, alguna idea de como obtener el texto dentro de esto?

Pd. con getElementsByTagName('data')[0] obtengo un objeto, pero no se como manipularlo par extraer informacion.
  #5 (permalink)  
Antiguo 30/10/2009, 03:30
Avatar de ceSharp  
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 16 años
Puntos: 66
Respuesta: ¿Alguien conoce una forma de sacar texto de elementos dentro de tags no es

hola Miuler,

he estado haciendo pruebas y he conseguido sacar el contenido de una etiqueta <nombre>hola</nombre>...
prueba con esto:

document.getElementsByTagName('nombre')[0].parentElement.innerText;

.... y cuentanos a ver que tal.... ;)

salu2
  #6 (permalink)  
Antiguo 30/10/2009, 05:02
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 5 meses
Puntos: 834
Respuesta: ¿Alguien conoce una forma de sacar texto de elementos dentro de tags no es

Podrías probar con:
Código PHP:
document.getElementsByTagName('data')[0].firstChild.data
o con
Código PHP:
document.getElementsByTagName('data')[0].firstChild.nodeValue
  #7 (permalink)  
Antiguo 30/10/2009, 06:59
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: object e innerText

Hola

Probemos de esta otra manera

documents.getelementsByTagName('nombre')[0].firstChild.nodeValue

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #8 (permalink)  
Antiguo 30/10/2009, 07:47
Avatar de ceSharp  
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 16 años
Puntos: 66
Respuesta: object e innerText

Miuler,

Primero--> no pongas tantos post sobre lo mismo sin ir contestando a las propuestas porque sino es más complicado ayudarte. Consiste en plantear tu problema, probar las posibles opciones que se te dan y responder si te ha funcionado o no. Si no dices nada y pones otro pues mal andamos! jejeje pero bueno.

Segundo--> Prueba esto y a ver que pasa. Consiste en recoger todos los TAGS de la web, separar con un array por nombre etiqueta y mostrar el resultado:
------------------------------------------------
var allTags = document.getElementsByTagName('data')[0].parentElement.innerHTML;
var xmlArray = allTags.split('DATA');
var contenido = xmlArray[1].substring(1,xmlArray[1].length-2);
------------------------------------------------
Teniendo en cuenta que la etiqueta 'rara' es <data>contenido</data>. Cazamos la posición uno del array porque la posición 0 es lo que queda detrás del primer DATA que encuentra. Si hubiera más de una etiqueta DATA deberías de crearte un bucle que vaya cazando las posiciones impares del xmlArray (lo he llamado así no sé, por que me ha dado por ahí, jejejej)

Bueno, prueba y nos cuentas.

salu2
  #9 (permalink)  
Antiguo 30/10/2009, 09:17
Avatar de Miuler  
Fecha de Ingreso: noviembre-2003
Mensajes: 7
Antigüedad: 21 años
Puntos: 0
Respuesta: ¿Alguien conoce una forma de sacar texto de elementos dentro de tags no es

Gracias si funciono pero a medias, si lo prueba directamente sobre un tag cualquiera desde la consola de IE funciona, pero no funciona cuando trato de hacerlo en el código verdadero donde el elemento document en realidad es una variable rec que contiene parte de un xml, y cuando lo aplico aquí no funciona. Pero me gusto la idea , gracias

Cita:
Iniciado por ceSharp Ver Mensaje
hola Miuler,

he estado haciendo pruebas y he conseguido sacar el contenido de una etiqueta <nombre>hola</nombre>...
prueba con esto:

document.getElementsByTagName('nombre')[0].parentElement.innerText;

.... y cuentanos a ver que tal.... ;)

salu2
  #10 (permalink)  
Antiguo 30/10/2009, 09:27
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 5 meses
Puntos: 834
Respuesta: ¿Alguien conoce una forma de sacar texto de elementos dentro de tags no es

Tendrías que haber empezado por ahí en realidad. Si el xml lo recuperás vía AJAX, por ejemplo, la manera de acceder es xhr.responseXML.getElemenentsByTagName.
Si estás usando otra manera, sería algo semejante. Te sugiero que leas esto:
http://www.w3schools.com/Dom/dom_parser.asp
y esto:
http://www.w3schools.com/Dom/dom_loadxmldoc.asp
y esto otro:
http://www.w3schools.com/Dom/dom_methods.asp

Esa lectura seguramente disipará tus dudas.
  #11 (permalink)  
Antiguo 30/10/2009, 09:29
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: ¿Alguien conoce una forma de sacar texto de elementos dentro de tags no es

¿Cuantos post con este tema vas a abrir?
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #12 (permalink)  
Antiguo 30/10/2009, 09:34
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 9 meses
Puntos: 772
Respuesta: object e innerText

Como ya te han dicho, habría sido mejor poner un sólo tema.

Temas unidos.
  #13 (permalink)  
Antiguo 30/10/2009, 09:40
Avatar de Miuler  
Fecha de Ingreso: noviembre-2003
Mensajes: 7
Antigüedad: 21 años
Puntos: 0
Respuesta: ¿Alguien conoce una forma de sacar texto de elementos dentro de tags no es

GRACIAS!!! SI FUNCIONO A LA PERFECCIÓN!!

Como dije en el comentario anterior, esto en realidad parte de un codigo mayor donde me pasan una variable rec, y de la cual tengo que obtener datos, ya estaba a punto de rendirme y volver a implementar las cosas de otra forma menos flexible, pero me salvaste la vida, la verdad intente con muchas cosas, hasta con childNodes[0] la la la pero nada, la verdad fue una muy buena idea la que pusiste, gracias, y como agradecimiento pongo el codigo completo, espero que no sea molesto :)

grid_data.html
Código:
<html>
<head>
<title>Title</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="AUTHOR" content="HECTOR MIULER MALPICA GALLEGOS" />

<!-- TODO: Temporal, solo para pruebas, quitar al final -->
<!-- ================== SERVER ======================= -->
<link rel="stylesheet" type="text/css" href="extjs/resources/css/ext-all.css" />
<script type="text/javascript" src="extjs/adapter/ext/ext-base.js"></script>  
<script type="text/javascript" src="extjs/ext-all-debug.js"></script>
<!-- ================== SERVER ======================= -->

<script type="text/javascript">
  Ext.onReady(function(){
    var _grid = new Ext.grid.GridPanel({
      title: 'PRUEBA DE COLUMNA CON FORMATO DATE',
      width: 290,
      height: 200,
      store: new Ext.data.XmlStore({
        url: 'grid_date.xml',
        record: 'report',
        fields: [
          {name: 'nombre'},
          {name: 'fecha', type: 'date'},
          {name: 'edad', convert: function(v, rec) {
            console.log("rec: ", rec);
//            console.log("rec.getElementsByTagName('edad')[0]: ", rec.getElementsByTagName('edad')[0]);
//            console.log("rec.getElementsByTagName('edad')[0].parentElement: ", rec.getElementsByTagName('edad')[0].parentElement);
            //console.log("rec.getElementsByTagName('edad')[0].parentElement.innerText: ", rec.getElementsByTagName('edad')[0].parentElement.innerText);
            console.log("rec.getElementsByTagName('edad')[0].firstChild: ", rec.getElementsByTagName('edad')[0].firstChild);
            console.log("rec.getElementsByTagName('edad')[0].firstChild.data: ", rec.getElementsByTagName('edad')[0].firstChild.data);
            console.log("rec.getElementsByTagName('edad')[0].firstChild.nodeValue: ", rec.getElementsByTagName('edad')[0].firstChild.nodeValue);

//            edad = rec.getElementsByTagName('edad')[0];
//            console.log('edad: ', edad);
//            console.log('edad.childNodes: ', edad.childNodes);
//            console.log('edad.childNodes[0]: ', edad.childNodes[0]);
//            edad2 = Ext.get(edad);
//            console.log('edad2: ', edad2);
//            console.log('edad2.dom.childNodes: ', edad2.dom.childNodes);
//            console.log('edad2.dom.childNodes[0]: ', edad2.dom.childNodes[0]);
//            console.log('edad2.dom.childNodes[0].innerHTML: ', edad2.dom.childNodes[0].innerHTML);
            return rec.getElementsByTagName('edad')[0].firstChild.data;
          }}
        ]
      }),
      columns: [
        {header: 'Nombre', dataIndex: 'nombre'},
        {header: 'Fecha', dataIndex: 'fecha', xtype: 'datecolumn', format: 'm/d H:i'},
        {header: 'Edad', dataIndex: 'edad'}
      ],
      renderTo: 'gridDate'
    });
    _grid.getStore().load();
  });
</script>
</head>

<body>
  <!-- ... body of document ... -->
  <div id='gridDate'></div>
  <tal id='123'>Prueba de texto dentro de un tag no standart</tal>
</body>
</html>
<!-- vim: set st=2 sw=2: -->
y el dato que viene en el xml

grid_data.xml
Código:
<?xml version="1.0" encoding="utf-8"?>
<reports>
  <report>
    <nombre>Miuler</nombre>
    <fecha>2009-10-09 11:08:00</fecha>
    <edad>28</edad>
  </report>
  <report>
    <nombre>Hector</nombre>
    <fecha>2009-10-27 10:01:00</fecha>
    <edad>27</edad>
  </report>
</reports>
<!-- vim: set st=2 sw=2: -->

Cita:
Iniciado por Panino5001 Ver Mensaje
Podrías probar con:
Código PHP:
document.getElementsByTagName('data')[0].firstChild.data
o con
Código PHP:
document.getElementsByTagName('data')[0].firstChild.nodeValue
  #14 (permalink)  
Antiguo 30/10/2009, 09:45
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 5 meses
Puntos: 834
Respuesta: object e innerText

Me alegra que te haya servido.
  #15 (permalink)  
Antiguo 30/10/2009, 09:54
Avatar de Miuler  
Fecha de Ingreso: noviembre-2003
Mensajes: 7
Antigüedad: 21 años
Puntos: 0
Respuesta: object e innerText

Hola, si entiendo el problema de varios post, pero cuando abrí el primer post con el titulo object e innerText, y lo volví a ver, realmente me pareció un mal nombre para tema , trate de editar como en otro foro que vi pero no encontré la forma de editar el titulo, solo el texto, es mas ahora que se ha resuelto aun no veo la forma de editar el titulo para ponerle "[R]titulo que le puse" indicando que ya se resolvió como en otros foros que vi, me disculpo por esto, aunque sigo pensando que el segundo titulo es mas facil de entender que solo poner 'object e innerText' o que dicen ustedes. Gracias.



Cita:
Iniciado por ceSharp Ver Mensaje
Miuler,

Primero--> no pongas tantos post sobre lo mismo sin ir contestando a las propuestas porque sino es más complicado ayudarte. Consiste en plantear tu problema, probar las posibles opciones que se te dan y responder si te ha funcionado o no. Si no dices nada y pones otro pues mal andamos! jejeje pero bueno.

Segundo--> Prueba esto y a ver que pasa. Consiste en recoger todos los TAGS de la web, separar con un array por nombre etiqueta y mostrar el resultado:
------------------------------------------------
var allTags = document.getElementsByTagName('data')[0].parentElement.innerHTML;
var xmlArray = allTags.split('DATA');
var contenido = xmlArray[1].substring(1,xmlArray[1].length-2);
------------------------------------------------
Teniendo en cuenta que la etiqueta 'rara' es <data>contenido</data>. Cazamos la posición uno del array porque la posición 0 es lo que queda detrás del primer DATA que encuentra. Si hubiera más de una etiqueta DATA deberías de crearte un bucle que vaya cazando las posiciones impares del xmlArray (lo he llamado así no sé, por que me ha dado por ahí, jejejej)

Bueno, prueba y nos cuentas.

salu2
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 18:36.