2016-02-13 101 views
1

我是新來的DOM。我想在標籤標題的第一個節點的文本http://www.w3schools.com/xml/books.xml,這是每天意大利。答案應該是這樣的:在DOM中獲取文本節點值

var x = xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue; 

從我所看到的,

xmlDoc.getElementsByTagName("title")[0] 

選自標題標籤的所有節點陣列獲取的第一個冠軍點。如果我想獲取該節點的文本,是不是應該像這樣?

xmlDoc.getElementsByTagName("title")[0].nodeValue 

爲什麼它與childNodes有關?這是什麼類型?

xmlDoc.getElementsByTagName("title")[0].childNodes[0] 

回答

1

文本內容表現爲在這種情況下childNode。可能是換行符或其他字符導致了這種情況發生。 (見here,例如)

無論哪種方式,您可以按如下方式訪問內容:

xmlDoc.getElementsByTagName("title")[0].innerHTML 
+0

我想我明白了,謝謝你。 – Zongyang

0

http://www.w3schools.com/xml/dom_nodes_get.asp -

「在DOM,一切都是一個節點。元素節點沒有文本值。 元素節點的文本值存儲在子節點中。這個節點被稱爲文本節點。'

xmlDoc.getElementsByTagName("title")[0] // first title element node 

所以,.childNodes [0]時需被其中文本值存儲

+0

我試過'childNodes [0]',剛剛拿到了'文本'的值(這沒什麼用處!) –

0
var x = xmlDoc.getElementsByTagName("title")[0].childNodes[0].textContent; 

我試圖innerHTMLchildNodes[0]它的文本節點,但既不工作 - 僅由上述工作了我。

來源:Node.textContent - Mozilla WebDocs