В jQuery я хочу удалить весь HTML внутри div - PullRequest
70 голосов
/ 17 марта 2009

У меня есть div, и я хочу удалить весь HTML внутри этого div.

Как я могу это сделать?

Ответы [ 6 ]

139 голосов
/ 17 марта 2009

Вы хотите использовать функцию empty :

$('#mydiv').empty();
72 голосов
/ 17 марта 2009

Я не думаю, что empty() или html() - это то, что вы ищете. Я думаю, вы ищете что-то вроде strip_tags в PHP. Если вы хотите сделать это, то вам нужно добавить эту функцию:

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

Предположим, это ваш HTML:

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

И тогда вы делаете:

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

Что приведет к:

<div id='foo'>This is bold and this is italic.</div>
11 голосов
/ 17 марта 2009

Другой способ - установить HTML в пустую строку:

$('#mydiv').html('');
0 голосов
/ 30 апреля 2016

предположим, что у вас есть html как этот

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

, если вы хотите, чтобы все html в «первом» div удалялись навсегда. просто используйте это

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

результат будет таким

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

  </div>
</div>

для временных (если вы хотите добавить их снова), мы можем попробовать detach () как

$('.first').detach();
0 голосов
/ 13 июня 2011
  function stripsTags(text)
  {
    return $.trim($('<div>').html(text).text());
  }
0 голосов
/ 05 мая 2011
var htmlJ = $('<p><span>Test123</span><br /><a href="http://www.google.com">goto Google</a></p>');
console.log(htmlJ.text()); // "Test123goto Google"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...