Laura
Laura

Reputation: 4369

JQuery: replace a string inside a div

<div id="content">
...
<p>NUMBER times...</p>
...
<p>Place N°: NUMBER</p>
</div>

How do I replace all NUMBER inside the content div? I tried replace method but it didn't work.

Thanks.

Upvotes: 7

Views: 23568

Answers (3)

Try this:

$('#content').children().each(function () {
    $(this).html(function (i, html) {
        return $(this).html().replace(/NUMBER/g, '123456');
    });
});

Upvotes: 1

Bruno Silva
Bruno Silva

Reputation: 3097

You should iterate all your text nodes and replace the text inside them.

$('#content').children().each(function() {
 var textNode = $(this);
 textNode.text(textNode.text().replace("NUMBER", "NEW"));
});

This codes assumes all the children of #content just contain text.

Upvotes: 3

Alex
Alex

Reputation: 34978

You can use the standard Javascript replace function for strings.

oldhtml = $('div#content').html();
var newhtml = oldhtml.replace(/NUMBER/g, "123");
$('div.demo-container').html(newhtml);

Upvotes: 13

Related Questions