Ich habe die 1-Schaltfläche und etwas Text in meinem HTML wie folgt:
function get_content(){
// I don't know how to do in here!!!
}
<input type="button" onclick="get_content()" value="Get Content"/>
<p id='txt'>
<span class="A">I am</span>
<span class="B">working in </span>
<span class="C">ABC company.</span>
</p>
Wenn der Benutzer auf die Schaltfläche klickt, wird der Inhalt in <p id='txt'>
dem folgenden erwarteten Ergebnis:
<p id='txt'>
// All the HTML element within the <p> will be disappear
I am working in ABC company.
</p>
Kann mir jemand helfen, wie man die JavaScript-Funktion schreibt?
Danke dir.
javascript
html
John
quelle
quelle
Antworten:
[2017.07.25] , da dies die akzeptierte Antwort auf weiterhin, trotz einer sehr hacky Lösung zu sein, ich bin Einbeziehung Gabi ‚s Code hinein, meine eigenen zu verlassen als schlechtes Beispiel zu dienen.
quelle
Sie können dies verwenden:
Je nachdem, was Sie benötigen, können Sie entweder
element.innerText
oder verwendenelement.textContent
. Sie unterscheiden sich in vielerlei Hinsicht.innerText
versucht zu approximieren, was passieren würde, wenn Sie auswählen, was Sie sehen (gerendertes HTML) und es in die Zwischenablage kopieren, während SietextContent
einfach die HTML-Tags entfernen und Ihnen geben, was noch übrig ist.innerText
hat auch Kompatibilität mit alten IE-Browsern (kam von dort).quelle
text
, da sie viel in einer Schleife erledigt wird. jQuery war nicht performant genug, aber das ging sehr schnell. Arbeitete in IE8 +, Chrom, ff. Perfekt.el.textContent
wirdundefined
undel.innerText
könnte sein""
. Ist"" || undefined
aberundefined
. Verwendenel.innerText || el.textContent || ''
kann besser sein.el.textContent || el.innerText || ""
.var text = element.textContent;
. es sei denn, Sie müssen aus irgendeinem gottlosen Grund noch IE8 oder niedriger unterstützen .el.innerText
ist ungefähr das gleiche wieel.textContent.replace(/\W+/g, ' ')
. Sie sind nicht gleich.Wenn Sie jquery verwenden können, ist es einfach
quelle
filter
Eigenschaft ich weiß , dass reine JS technisch effizienter ist , wenn es um Geschwindigkeit geht, aber das spielt kaum eine Rolle mehr in den meisten normalen ...document.querySelector("#txt").innerText;
Menschen schließen die gesamte jQuery-Bibliothek viel zu oft ein, wenn sie nur ein paar Codezeilen benötigen. Es ist eine schlechte Praxis.Diese Antwort funktioniert, um nur den Text für jedes HTML-Element zu erhalten.
Dieser erste Parameter "Knoten" ist das Element, von dem der Text abgerufen werden soll. Der zweite Parameter ist optional. Wenn true, wird ein Leerzeichen zwischen den Texten innerhalb der Elemente eingefügt, wenn dort sonst kein Leerzeichen vorhanden wäre.
quelle
Je nachdem, was Sie benötigen, können Sie entweder
element.innerText
oder verwendenelement.textContent
. Sie unterscheiden sich in vielerlei Hinsicht.innerText
versucht zu approximieren, was passieren würde, wenn Sie auswählen, was Sie sehen (gerendertes HTML) und es in die Zwischenablage kopieren, während SietextContent
einfach die HTML-Tags entfernen und Ihnen geben, was noch übrig ist.innerText
wird nicht mehr nur für den Internet Explorer verwendet und wird in allen gängigen Browsern unterstützt . Im Gegensatz dazutextContent
ist es natürlich mit alten IE-Browsern kompatibel (seitdem sie darauf gekommen sind).Vollständiges Beispiel (aus Gabis Antwort ):
quelle
Dies funktioniert für mich kompiliert basierend auf dem, was hier mit einem moderneren Standard gesagt wurde. Dies funktioniert am besten für mehrere Suchvorgänge.
quelle
Das sollte funktionieren:
Versuchen Sie diese Geige: http://jsfiddle.net/7gnyc/2/
quelle
Das sollte es tun.
quelle
Versuchen Sie es (Kurzversion der Gabi- Antwortidee )
Code-Snippet anzeigen
quelle