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?

mrblah
quelle

Antworten:

142

Sie möchten die leere Funktion verwenden:

$('#mydiv').empty();
Paolo Bergantino
quelle
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>
Bart
quelle
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('');
karim79
quelle
0
var htmlJ = $('<p><span>Test123</span><br /><a href="http://www.google.com">goto Google</a></p>');
console.log(htmlJ.text()); // "Test123goto Google"
Chriz
quelle
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());
  }
mynameistechno
quelle
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();
reza.cse08
quelle