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,364
  • 48
  • 140
  • 231

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,215
  • 11
  • 61
  • 96
  • $(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
  • 367,681
  • 72
  • 526
  • 573
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
  • 223,102
  • 54
  • 301
  • 354
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
  • 39,317
  • 26
  • 112
  • 166
0

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

Community
  • 1
  • 1
benhowdle89
  • 35,602
  • 65
  • 197
  • 321
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,505
  • 4
  • 25
  • 37