jQuery (almost) equivalent of PHP's strip_tags()

Alex picture Alex · Apr 9, 2011 · Viewed 49.5k times · Source

Is there a jQuery version of this function?

string strip_tags( string $str [, string $allowable_tags ] )

strip all tags and content inside them from a string except the ones defined in the allowable tags string.

like:

var stripped = strip_tags($('#text').html(), '<p><em><i><b><strong><code>');

from:

<div id="text">
  <p> paragraph </p>
  <div> should be stripped </div>
</div>

Answer

karim79 picture karim79 · Apr 9, 2011

To remove just the tags, and not the content, which is how PHP's strip_tags() behaves, you can do:

var whitelist = "p"; // for more tags use the multiple selector, e.g. "p, img"
$("#text *").not(whitelist).each(function() {
    var content = $(this).contents();
    $(this).replaceWith(content);
});

Try it out here.