2014-09-18 24 views
0

我在我的DOMDocument中做了一個getElementsByTagName("li"),但是我沒有每個li元素的內部HTML,只是不同於getElementById。如何獲得getElementsByTagName的HTML?GetElementsByTagName - No HTML

+0

這與PHP有什麼關係?爲什麼沒有JavaScript標籤? – j08691 2014-09-18 16:27:25

+0

因爲我使用的是PHP中的DOMElement,而不是JS – Eko 2014-09-18 16:29:18

+0

您使用的是哪種瀏覽器?我似乎發現getElementsByTagName只在IE 10中以這種方式運行。 - 節點中沒有返回innerHTML屬性。 – pdschuller 2014-09-18 21:28:49

回答

0

元素getElementsByTagName複數

它不返回一個元素,它返回一個NodeList,它就像一個數組。

循環播放(for (var i = 0; i < nodelist.length; i++))並依次處理每個成員。

+0

我知道。我做了一個foreach。但是每個nodeValue都不包含HTML,並且不包含其中的文本 – Eko 2014-09-18 16:26:32

+0

@Eko - 如果您需要HTML,請使用innerHTML而不是'nodeValue'。 – Quentin 2014-09-18 16:28:42

0

getElementsByTagName返回元素數組。你必須遍歷它以提取innerHTML(確保你真正想要的HTML,而不僅僅是文字!)

for (var i=0; i<x.length; i++) { //x = the list of elements 
    var derp = x[i].innerHTML; 
} 

或者,如果你想成爲幻想,使用原型法的forEach和調用。

[].forEach.call(document.getElementsByTagName("li"), function(element) { 
    element.innerHTML; 
}); 

我建議用textContent更換innerHTML但是,既然你說你想要的文字。