2016-04-30 4 views
1

ich zu getElementsByTagName("title") versucht dann seine Werte alarmierenWarum InnerTEXT nicht mit Knoten funktioniert?

versucht innerText zu verwenden es nichts

Beispiel zurück:

<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> 

es funktioniert nur, wenn ich innerHTML- verwenden, aber ich verstehe nicht, Warum !

Beispiel:

<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

Warum die XML zu JSON nicht konvertieren? Auf diese Weise können Sie auf die Werte natürlicher zugreifen als mit der DOM API – evolutionxbox

+0

Hat wirklich keine dieser Fragen Ihnen geholfen? ['[javascript] innerText'] (http://stackoverflow.com/search?q=%5Bjavascript%5D+innerText) Du hast gesucht, oder? –

+0

@FelixKling Ich suchte, aber das Problem, ich weiß nicht, wie innerHTML gibt den gleichen Wert wie textContent – Vendetta

Antwort

4

innerText ist die "alte Internet Explorer" Art und Weise, es zu tun.

Der korrekte Name ist textContent.

+0

es funktioniert! aber innerHTML sollte nicht richtig funktionieren? Nur textContent sollte funktionieren, um den Wert zu drucken – Vendetta

1

auf dem Browser-abhängig ist, gehen mit textContent

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

innerText nur als einen eventuellen Rückfall verwendet wird.

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

textContent ist geeignete Weise für alle Browser und seit IE9

Element.innerHTML ist eine zuverlässige Cross-Browser-Art und Weise all HTML-Inhalte String eines Elements zu erhalten. Der Unterschied von textContent besteht darin, dass innerHTML die vollständige HTML-Struktur in eine Zeichenfolge abruft, während Node.textContent Knoten Typ 3 (Kontexttext) von einem Element abruft (und es untergeordnete Elemente ist).

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

Verwandte Themen