In jQuery möchte ich den gesamten HTML-Code innerhalb eines Div entfernen


73

Ich habe ein Div und möchte den gesamten HTML-Code in diesem Div entfernen.

Wie kann ich das machen?

Antworten:



72

Ich denke nicht empty()oder html()ist das, wonach du suchst. Ich denke, Sie suchen nach etwas wie strip_tagsin PHP. Wenn Sie dies tun möchten, müssen Sie diese Funktion hinzufügen:

jQuery.fn.stripTags = function() {
    return this.replaceWith( this.html().replace(/<\/?[^>]+>/gi, '') );
};

Angenommen, dies ist Ihr HTML:

<div id='foo'>This is <b>bold</b> and this is <i>italic</i>.</div>

Und dann machst du:

$("#foo").stripTags();

Was dazu führen wird:

<div id='foo'>This is bold and this is italic.</div>

5
Ich denke, er meinte, alle Inhalte zu entfernen. Immer noch +1 für eine gute Antwort für zukünftige Generationen.
Pekka

29
Persönlich würde ich nur $ ("# foo"). Html ($ ("# foo"). Text ()) machen;
Killroy

Er meinte nicht, ob er das Klartext-Ergebnis wollte oder nicht, aber dennoch funktionierte diese Antwort für mich :)
Detay

Großartig, mit einigen kleinen Änderungen funktionierte es auch hervorragend für Eingabefelder. Vielen Dank.
Shadowhorst

11

Eine andere Möglichkeit besteht darin, das HTML auf die leere Zeichenfolge zu setzen:

$('#mydiv').html('');

0
var htmlJ = $('<p><span>Test123</span><br /><a href="http://www.google.com">goto Google</a></p>');
console.log(htmlJ.text()); // "Test123goto Google"

Wenn Text vorhanden ist <script type="text/javascript">alert('sasa');</script>, wird eine Warnung ausgegeben, sodass er nicht sicher ist.
Umpirsky

0
  function stripsTags(text)
  {
    return $.trim($('<div>').html(text).text());
  }

Wenn Text vorhanden ist <script type="text/javascript">alert('sasa');</script>, wird eine Warnung ausgegeben, sodass er nicht sicher ist.
Umpirsky

0

Angenommen, Sie haben ein HTML wie dieses

<div class="prtDiv">
   <div class="first">
     <div class="hello">Hello</div>
     <div class="goodbye">Goodbye</div>
  </div>
</div>

Wenn Sie möchten, dass alle HTML-Dateien unter "first" div dauerhaft entfernt werden. benutze dies einfach

$('.first').empty();

Ergebnis wird so sein

<div class="prtDiv">
   <div class="first">

  </div>
</div>

Für temporäre (wenn Sie sie erneut hinzufügen möchten) können wir versuchen, () wie zu trennen

$('.first').detach();
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.