2012-07-31 9 views
10

Ich habe Probleme, den inneren Text eines bestimmten Knotens zu bekommen. Ich habe den Beispielknoten hinzugefügt, mit dem ich arbeite, und das Javascript, das ich mir ausgedacht habe. Das Javascript funktioniert so weit wie die Rückgabe dieses <span id="goal_left">3 goals lect</span> wenn ich es auf der Konsole logge. Wenn ich den JavaScript-Beispielen innerText hinzufüge, wird nichts an die Konsole zurückgegeben. Irgendwelche Ideen, wie man diesen Text bekommt?den inneren Text eines Knotens erhalten

html

<span id="goal_left">3 goals lect</span> 

javascript: diese Beispiele zurückgeben <span id="goal_left">3 goals lect</span>

document.getElementById("goal_left"); 

document.querySelectorAll("span#goal_left")[0]; 

javascript: diese Beispiele nichts zurückgeben

document.getElementById("goal_left").innerText; 

document.querySelectorAll("span#goal_left")[0].innerText; 

Antwort

26

Wahrscheinlich der einfachste Weg:

document.querySelectorAll("span#goal_left")[0].firstChild.nodeValue; 

Obwohl, wenn Sie immer den ersten Knoten durch querySelectorAll() zurückgegeben werden sollen können Sie einfach verwenden:

document.querySelector("span#goal_left").firstChild.nodeValue; 

übrigens würde ich jeden Browser vorstellen, dass querySelectorAll() implementiert wahrscheinlich implementiert textContent, geben:

document.querySelector("span#goal_left").textContent; 

Nur eine Cross-Browser-Option anzubieten.

var textProperty = 'textContent' in document ? 'textContent' : 'innerText'; 
document.getElementById('goal_left')[textProperty] 
+0

http://caniuse.com/#feat=textcontent – Vadorequest

+0

http://caniuse.com/#feat=Innertext Implementierung auf IE ist das gleiche für beide, so bezweifle ich, dass dies Cross-Browser unter IE11 ist – Vadorequest

2

Die innerHTML Eigenschaft sein könnte, was Sie gesucht haben. Es enthält den HTML-Code in einem Element als String.

+0

Ich versuchte innerHTML, aber es gibt nichts zurück zur Konsole –

0

document.getElementById ("goal_left") innerHTML- statt innertext.

Vielleicht möchten Sie auch jQuery für die Manipulation von DOM-Elementen verwenden, es ist viel einfacher und weniger fehleranfällig.

+0

Ich versuchte innerHTML, aber es gibt nichts zurück zur Konsole –

+0

Es funktionierte für mich auf Chrome, versuchen Sie var aa = document.getElementById ("goal_left"). innerHTML ; und console.log (aa); – Drawyan

Verwandte Themen