Vraag jQuery-tekst (), interpreteer Google als een nieuwe regel


Een element van de DOM als deze krijgen

$('#id').content().text();

Er ontstaat een probleem met

Als het dit wordt:

<p>Hello</p>
<p><br></p>
<p>World</p>

Natuurlijk in HTML ziet het er als volgt uit:

Hello 

World

Maar deze jQuery .text() methode retourneert: HelloWorld

Hoe te interpreteren <br> als nieuwe regel? <-> Hoe krijg ik de tekst precies zoals ik die in HTML zie?

.html() geeft alle HTML-tags, die ik niet wil. Ik heb zo nodig de lege tekst met spaties nodig.


15
2017-08-10 16:45


oorsprong


antwoorden:


.text() is platte tekst zonder opmaak. Het is letterlijk de aaneenschakeling van de tekstknooppunten zonder andere HTML-codes (inclusief nieuwe regels die worden weergegeven door) <br> of <p> tags, niet door nieuwe regels).

.html() is de exacte HTML van een containertag.

Als je dit gebruikt, krijg je een benadering van je tekst met nieuwe regels:

var item = document.getElementById("id");
var text = item.innerText || item.textContent;

Het kijkt naar beide .textContent en .innerText vanwege problemen met browsercompatibiliteit.

Zien http://jsfiddle.net/jfriend00/Xs5P3/ voor een werkende demo.

Een Google-zoekopdracht voor "HTML naar tekstconversie" biedt veel opties om te onderzoeken.


21
2017-08-10 16:48