2016-04-30 110 views
1

我試圖getElementsByTagName("title")然後提醒自己的價值觀爲什麼innerTEXT不能和節點一起工作?

它試圖用innerText它返回任何結果

例子:

<script> 
    var req = new XMLHttpRequest(); 
    req.onreadystatechange=function() 
    { 
    if(req.readyState==4 && req.status==200) 
    { 
     titles = req.responseXML.getElementsByTagName("title"); 
     for(i=0; i < titles.length; i++) 
     { 
    alert(titles[i].innerText); 
     } 
    } 

    } 
    req.open("GET","webapp/data",true); 
    req.send(); 
</script> 

當我使用innerHTML但我不明白它只能爲什麼!

例子:

<script> 
    var req = new XMLHttpRequest(); 
    req.onreadystatechange=function() 
    { 
    if(req.readyState==4 && req.status==200) 
    { 
     titles = req.responseXML.getElementsByTagName("title"); 
     for(i=0; i < titles.length; i++) 
     { 
    alert(titles[i].innerHTML); 
     } 
    } 

    } 
    req.open("GET","webapp/data",true); 
    req.send(); 
</script> 
+0

爲什麼不轉換XML以JSON?這樣,您可以比使用DOM api更自然地訪問這些值 – evolutionxbox

+0

這些問題真的沒有幫助您嗎? ['[javascript] innerText'](http://stackoverflow.com/search?q=%5Bjavascript%5D+innerText)你搜索了,對吧? –

+0

@FelixKling我搜索了,但問題我不知道innerHTML如何給出與textContent相同的值 – Vendetta

回答

4

innerText是做它的 「古代的Internet Explorer」 的方式。

正確的名稱是textContent

+0

它的工作原理!但innerHTML不應該正常工作?只有textContent應該能夠打印該值 – Vendetta

1

取決於瀏覽器,去textContent

titles[i].textContent || titles[i].innerText 

使用innerText僅作爲最終的後備用。

https://developer.mozilla.org/en-US/docs/Web/API/Node/innerText
https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent

textContent是更合適的方式對所有的瀏覽器和自IE9

Element.innerHTML是一個可靠的跨瀏覽器的方式來獲得一個元素的所有HTML內容字符串。與textContent的區別在於innerHTML將檢索完整的HTML結構爲字符串,而Node.textContent將從元素(以及它的子元素)檢索節點類型3(上下文文本)。

https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML
https://developer.mozilla.org/en/docs/Web/API/Node/nodeType

相關問題