2010-12-05 85 views
7

這很容易在jQuery中,但如何處理純javascript?JavaScript獲取html或文本從div

該代碼適用於Google圖片搜索API。我想要搜索與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愛伸出手

和其他的無關的圖像。我想知道谷歌搜索什麼..認爲第二個是給我一個提示。

回答

16

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

提取唯一可以做的文本:如果您只想內的文本

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

THX!有像`jQuery中的.text()`這樣的東西嗎? – 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

的內容一個元素,您可以在更符合標準的瀏覽器(即不是IE)和中使用textContent 210在IE中。 They're not identical in all cases但是爲了你的目的,他們很可能是。

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