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>
-
replace can not be run on a jQuery object. What do you want to do?powtac– powtac2011年01月12日 09:40:46 +00:00Commented Jan 12, 2011 at 9:40
6 Answers 6
.replace() is a string method - it won't work on a jQuery object. Try:
$(this).text($(this).text().replace(" ", "ert"))
1 Comment
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'));
});
Comments
.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');
});
});
Comments
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'));
1 Comment
Comments
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?