Ich habe Probleme, Leerzeichen aus einer Zeichenfolge zu entfernen. Zuerst konvertiere ich das div in text();
, um die Tags zu entfernen (was funktioniert) und dann versuche ich, den "  
" Teil der Zeichenkette zu entfernen, aber es funktioniert nicht. Irgendeine Idee, was ich falsch mache. Danke.
Wenn Sie die Funktion text
verwenden, erhalten Sie nicht HTML, sondern Text: Die Entitäten
wurden in Leerzeichen geändert.
Ersetzen Sie einfach Leerzeichen:
%Vor% Wenn Sie nur die Leerzeichen ersetzen möchten, die von
kommen, führen Sie vor der Konvertierung die Ersetzung durch:
.text()
/ textContent
enthalten keine HTML-Entitäten (z. B.
), diese werden als Literalzeichen zurückgegeben. Hier ist ein regulärer Ausdruck, der die nicht-brechende Leerzeichen Unicode-Escapesequenz verwendet:
Es ist auch möglich, anstelle der Escape-Sequenz in Regex ein buchstabengetreues Leerzeichen zu verwenden, allerdings finde ich in diesem Fall die Escape-Sequenz klarer. Nichts, was ein Kommentar nicht lösen würde.
Es ist auch möglich, .html()
/ innerHTML
zu verwenden, um das HTML, das HTML-Entitäten enthält, wie in der Antwort von @Dystroy abzurufen.
Unten ist meine ursprüngliche Antwort, wo ich den Anwendungsfall von OP falsch interpretiert habe. Ich lasse es hier für den Fall, dass jemand
vom Textinhalt der DOM-Elemente entfernen muss
[...] Beachten Sie jedoch, dass das Zurücksetzen von .html()
/ innerHTML
eines Elements bedeutet, dass alle zugehörigen Listener und Daten gelöscht werden.
Also hier ist eine rekursive Lösung, die nur den Textinhalt von Textknoten ändert, ohne HTML oder irgendwelche Nebenwirkungen zu reparieren.
%Vor%Tags und Links javascript html jquery