[ACCEPTED]-Remove text with jQuery-jquery

Accepted answer
Score: 53

Using the answer from this question:

$(elem)
  .contents()
  .filter(function() {
    return this.nodeType == 3; //Node.TEXT_NODE
  }).remove();

0

Score: 8

First, you can wrap them with dummy spans:

$("body").contents()
    .filter(function(){ return this.nodeType != 1; })
    .wrap("<span class='orphan'/>");

Now 1 you can remove them easily:

$('span.orphan').remove();
Score: 3

fwiw..

<div class="parent-element">
<p>This is some text</p>
This is "unwrapped" text //to be removed
<span>some more text</span>
</div>

via CSS:

.parent-element { font-size: 0px; }
.parent-element p { font-size: 12px; }
.parent-element span { font-size: 14px; }

0

Score: 2

Wrapping it in a DOM element would mean 1 jQuery can find it:

eg:

var text = 'This is "unwrapped" text';

$("div:contains('" + text + "')").remove();

or just:

$('p').next().remove();
Score: 0

It's amazing but at the same time the following 5 code doesn't work

$("div.myClass:has(img)").contents().filter(":text").remove();

and the code from the first 4 post works

$("div.myClass:has(img)")
  .contents()
  .filter(function() {
    return this.nodeType == 3; //Node.TEXT_NODE
  }).remove();

It's important to remeber! jQuery 3 1.8.3.

And first of all I remember that innerHTML 2 manipulation works much more faster than 1 this approach!

More Related questions