2010-12-05 86 views
7

Esto es fácil en jquery, pero ¿qué hay de simple javascript?javascript obtener html o texto de div

El código es para la API de búsqueda de imágenes de Google. Quiero buscar imágenes que coincidan con html o preferiblemente texto dentro de un div.

var searchThis = document.getElementById('imgToFind'); //get HTML, or text from div 

// Find images 
imageSearch.execute(searchThis); //search image 

El HTML

<div id="imgToFind">PlayStation</div> 

El resultado debe ser imágenes de PlayStation. En lugar de eso obtener estos

1 Dosic ois - 123

alt text IE8 Javascript vuelve [objeto] en lugar HTMLDivElement [

alt text mano amorosa

y otras imágenes irrelevantes. Me pregunto qué busca Google ... creo que el segundo me da una pista.

Respuesta

16

su var searchThis = document.getElementById('imgToFind').innerHTML;

extraer sólo de texto que puede hacer:

element = document.getElementById('imgToFind'); 
var searchThis = element.textContent || element.innerText; 
+1

THX! ¿existe algo así como '.text()' como en jquery? –

+0

Gracias! Decidí usar js simples porque la API de Google no usa jquery. Pensé que haría todo en un guión. Solo necesito algunas funciones simples. –

+1

No, no necesita un analizador para extraer el texto de un elemento DOM. Puedes usar la propiedad 'textContent' o' innerText' del elemento según mi respuesta o atravesar el DOM y amalgamar el texto de cada nodo de texto encontrado. No es tan difícil y no requiere jQuery. –

2

var searchThis = document.getElementById('imgToFind').innerHTML;

se agarra el contenido del elemento :)

+0

¡Thx! Parece que respondiste al mismo tiempo jajaja. Votará a la persona que responde la pregunta de bonificación. ¿Hay algo como '.text()' en javascript como en jquery? –

+1

Lo siento, no estoy muy seguro de eso sinceramente :) –

2

Si desea sólo el texto dentro de un elemento, puede usar textContent en los navegadores más compatibles con estándares (es decir, no en IE) y innerText en IE. They're not identical in all cases pero para sus propósitos pueden serlo.

var el = document.getElementById("foo"); 
var text = el.textContent || el.innerText; 
+0

¡genial! ¡Gracias! –

Cuestiones relacionadas