2010-12-05 5 views
7

Это легко в jquery, но как насчет простого javascript?javascript get html или текст из div

Код для API поиска изображений Google. Я хочу искать изображения, соответствующие HTML или, желательно, текст внутри div.

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

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

HTML-

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

Результат должен быть образы игровой приставкой. Вместо этого я получаю эти

1 dosic OIS - 123

alt text IE8 Javascript возвращает [объект HTMLDivElement] вместо [

alt text Loving Hand

и другие ненужные изображения. Интересно, что Google ищет .. думаю, второй дает мне подсказку.

ответ

16

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

извлечь только текст, который вы можете сделать:

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

THX! есть ли такая вещь, как `.text()` как в jquery? – 2010-12-05 03:27:47

+0

Спасибо! Я решил использовать простые js, потому что google api не использует jquery. Думал, что я сделаю все в одном сценарии. Мне просто нужно несколько простых функций. – 2010-12-05 03:49:53

+1

Нет, вам не нужен синтаксический анализатор для извлечения текста из элемента DOM. Вы можете использовать свойство `textContent` или` innerText` элемента в соответствии с моим ответом или пересечь DOM и объединить текст из каждого найденного текстового узла. Это не так сложно и не требует jQuery. – 2010-12-05 15:43:54

2

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

будет захватывать содержимое элемента :)

2

Если вы хотите просто текст в элемент, вы можете использовать textContent в более стандартизованных браузерах (то есть не в IE) и innerText в IE. They're not identical in all cases, но для ваших целей они вполне могут быть.

var el = document.getElementById("foo"); 
var text = el.textContent || el.innerText; 
Смежные вопросы