0

Any ideas why this jquery is not working?

$("div.aboutText p a").each( function() {
    $(this).replace(' ', 'ert');
});

OK... so I have a link that looks something like this...

<a href="#">My Link</a>

And I want it to look something like this...

<a href="#">MyertLink</a>
Tom
  • 12,776
  • 48
  • 145
  • 240

6 Answers6

3

.replace() is a string method - it won't work on a jQuery object. Try:

$(this).text($(this).text().replace(" ", "ert"))
Bobby Jack
  • 15,689
  • 15
  • 65
  • 97
  • $(this).text($(this).text().replace(/ /gi, 'ert')); - this replaces every occurrence of a space. Thanks! – Tom Jan 12 '11 at 10:02
1

You should replace text or html:

$(this).html($(this).html().replace(" ", "ert"));

Or:

$(this).text($(this).text().replace(" ", "ert"));

To actually replace all instances of space, you will have to use regex with /g modifier like this:

$(this).text($(this).text().replace(/' '/g, 'ert'));

Another method would be using split and join like this:

$(this).text($(this).text().split(' ').join('ert'));
Sarfraz
  • 377,238
  • 77
  • 533
  • 578
1

.replace() is a plain Javascript method, it's not encapsulated by jQuery. So I guess you want to replace either the text() or the href value from your anchors.

$("div.aboutText p a").each( function() {
    $(this).text(function(i, text) {
        return text.replace(' ', 'ert');
    });
});

or

$("div.aboutText p a").each( function() {
    $(this).attr('href', (function(i, href) {
        return href.replace(' ', 'ert');
    });
});
jAndy
  • 231,737
  • 57
  • 305
  • 359
1

When you want to replace something in the text of the a tag use this:

$("div.aboutText p a").each( function() {
    $(this).text($(this).text().replace('/ /', 'ert'));
});
powtac
  • 40,542
  • 28
  • 115
  • 170
0

Look here: How to change the href for a hyperlink using jQuery

Community
  • 1
  • 1
benhowdle89
  • 36,900
  • 69
  • 202
  • 331
0

What you want might be this instead:

$("div.aboutText p a").each(function() {
  var t = $(this).text().replace(" ","ert");
  $(this).text(t);
});

$(this) will return the a tag, but what part of the A tag are you trying to replace? the text?

Jimmy Chandra
  • 6,472
  • 4
  • 26
  • 38