Foros del Web » Programando para Internet » Javascript » Frameworks JS »

getElementById y extraer solo texto

Estas en el tema de getElementById y extraer solo texto en el foro de Frameworks JS en Foros del Web. Me va a ser difícil en algunos casos saber si postear aquí o en javascript... En este caso tengo un <div id="resultado"></div> donde cargo textos ...
  #1 (permalink)  
Antiguo 26/10/2005, 12:11
Avatar de tralara  
Fecha de Ingreso: diciembre-2003
Mensajes: 230
Antigüedad: 21 años
Puntos: 0
getElementById y extraer solo texto

Me va a ser difícil en algunos casos saber si postear aquí o en javascript...

En este caso tengo un <div id="resultado"></div> donde cargo textos en formato html despues de una consulta.

document.getElementById('resultado').innerHTML = datos;

Ahora quiero pasar la info que contiene el div a un campo de texto en un form, el problema que se presenta aquí es que con innerHTML me extrae texto + html y no solo el texto que se ve por pantalla, entonces, es posible algo como getElementById.innerTEXT o semejante, sin tener que hacer uso por ejemplo de php para filtrar los datos?

Saludos
  #2 (permalink)  
Antiguo 26/10/2005, 12:33
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 10 meses
Puntos: 772
Hola tralara

A lo mejor te sirve utilizar expresiones regulares para eliminar las etiquetas HTML:
Código PHP:
cad '<p>Esto es una <span>prueba</span> de texto</p>';
patron = /</w+>|<w+>/g;
cad cad.replace(patron,'');
alert(cad); 
Saludos,
  #3 (permalink)  
Antiguo 26/10/2005, 13:03
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 20 años
Puntos: 7
Se podría "reducir" a lo siquiente:

Código PHP:
cad '<p>Esto es una <span>prueba</span> de texto</p>';
cad cad.replace(/<[^>]*>/g'');
alert(cad); 
Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #4 (permalink)  
Antiguo 26/10/2005, 13:25
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 20 años, 6 meses
Puntos: 2
Pues si te he entenido bien con esto te valdría:

var texto=document.getElementById('resultado').innerTe xt (con la T en mayúsculas)
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #5 (permalink)  
Antiguo 26/10/2005, 19:07
Avatar de tralara  
Fecha de Ingreso: diciembre-2003
Mensajes: 230
Antigüedad: 21 años
Puntos: 0
Hola living, si que me has entendido bien pero .innerText no me valió, tu lo usas así y te funciona?

Por otro lado los ejemplos de expresiones regulares no me han resuelto el problema y una expresión que contemple cosas como <a href="/draeI/SrvltObtenerHtml TIPO_HTML=2&amp; IDLEMA=83341&amp; NEDIC=Si" target="_self"> por ahora me va a ser difícil escribirla.

De momento me ayudaré de strip_tags() desde php, pero no hay problema si la cosa da para más...

SAludos
  #6 (permalink)  
Antiguo 26/10/2005, 21:15
Avatar de programeitor  
Fecha de Ingreso: febrero-2005
Mensajes: 994
Antigüedad: 19 años, 10 meses
Puntos: 9
campo.value=elemento.childNodes[0].toString() // o 1, o 2 ,o 3 ...........


Ns-Ff no reconoce innerText .

Última edición por programeitor; 26/10/2005 a las 21:22
  #7 (permalink)  
Antiguo 27/10/2005, 00:54
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 20 años, 6 meses
Puntos: 2
Pues a mi si que me funciona:

Código HTML:
<html>
<head>
<script>
function sacarTexto(){
var codigo=document.getElementById("capa").innerText;
document.getElementById("texto").value=codigo;
}
</script>
</head>

<body>
<div id="capa">
<font color="#996600">texto con color</font> <a href="www.terra.es">ir a Terra</a>
</div>

<textarea id="texto"  cols="40" rows="10" name="texto"></textarea>
<br />
<input type="button" onclick="sacarTexto()" value="sacar" />
</body>
</html> 
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #8 (permalink)  
Antiguo 27/10/2005, 01:01
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 20 años, 6 meses
Puntos: 2
innerText en Mozilla

http://www.faqts.com/knowledge_base/...html/aid/19509
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #9 (permalink)  
Antiguo 27/10/2005, 04:47
Avatar de tralara  
Fecha de Ingreso: diciembre-2003
Mensajes: 230
Antigüedad: 21 años
Puntos: 0
Gracias por el link living, parece que estaba abocado a usar expresiones regulares!!

Como tengo la suerte que en el html cada salto de linea en los textos es un </td>, me sirve esto, imagino que se podría simplificar...


Código PHP:
//El html
    
datos document.getElementById('resultado_rae').innerHTML;
    
    
// sustituir todos los </td> por <br>
    
dat datos.replace(/</td>/g,"<br>");

    
//Sustituir todos los <br> por _marca_
    
dat dat.replace(/<br>/g,"_marca_");

    
//Eliminar todas las etiquetas html y dejar solo texto
    
dat dat.replace(/<[^>]+>/g,"");

    
// Sustituir _marca_ por saltos de linea
    
dat dat.replace(/_marca_/g,"\n"); 
Saludos y gracias
  #10 (permalink)  
Antiguo 27/10/2005, 09:24
Avatar de SiR.CARAJ0DIDA  
Fecha de Ingreso: junio-2004
Ubicación: Acá
Mensajes: 1.166
Antigüedad: 20 años, 5 meses
Puntos: 4
el equivalente de innerText para firefox es textContent
__________________
Internet Explorer SuckS
Download FireFox
  #11 (permalink)  
Antiguo 27/10/2005, 19:02
Avatar de programeitor  
Fecha de Ingreso: febrero-2005
Mensajes: 994
Antigüedad: 19 años, 10 meses
Puntos: 9
absolutamente perfecto.
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 (incluyéndote)




La zona horaria es GMT -6. Ahora son las 11:12.