Antworten:
Sie werden es wahrscheinlich versuchen wollen, textContentanstatt innerHTML.
Gegeben innerHTMLwird DOM-Inhalt als Stringund nicht ausschließlich als "Text" in der zurückgegeben div. Es ist in Ordnung, wenn Sie wissen, dass Ihr divText nur enthält, aber nicht für jeden Anwendungsfall geeignet ist. In diesen Fällen müssen Sie wahrscheinlich textContentanstelle von verwendeninnerHTML
Betrachten Sie beispielsweise das folgende Markup:
<div id="test">
Some <span class="foo">sample</span> text.
</div>
Sie erhalten folgendes Ergebnis:
var node = document.getElementById('test'),
htmlContent = node.innerHTML,
// htmlContent = "Some <span class="foo">sample</span> text."
textContent = node.textContent;
// textContent = "Some sample text."
Weitere Informationen finden Sie unter MDN:
innerHTMLgibt nicht nur den in der Frage angeforderten Textinhalt zurück. Ich würde eine Lösung implementieren, die auf .textContentFeature-Erkennung mit einem Fallback für <IE9
Sie können verwenden innerHTML(dann Text aus HTML analysieren) oder verwenden innerText.
let textContentWithHTMLTags = document.querySelector('div').innerHTML;
let textContent = document.querySelector('div').innerText;
console.log(textContentWithHTMLTags, textContent);
innerHTMLund innerTextwird von allen Browsern (außer FireFox <44) einschließlich IE6 unterstützt .
Eigentlich müssen Sie die document.getElementById()Funktion nicht aufrufen , um Zugriff auf Ihre zu erhalten div.
Sie können dies objectdirekt verwenden durch id:
text = test.textContent || test.innerText;
alert(text);
.textContentwird in IE8 und niedriger nicht unterstützt, was die Verwendung etwas erschwert.