Dynamically replace image source with jQuery
Solution 1
$("#starRating img").attr("src", "http://pathto/my-star-1.png")
EDIT
I think that you're asking how to dynamically replace the src based on what is there currently. So if there is some direct difference in strings, maybe try
var img = $("#starRating img");
img.attr("src", img.attr("src").replace("yelp", "my"));
Solution 2
If you are just trying to do a basic replace without any pattern:
$('img[src="http://website.com/images/yelp-star-1.png"]').attr('src','http://website.com/images/my-star-1.png');
This could be used with images who have a src attribute starting with http://website.com/images/yelp-star-
$('img[src^="http://website.com/images/yelp-star-"]').each(function() {
$(this).attr('src', $(this).attr('src').replace("yelp", "my"));
});
Solution 3
@GrayB gave me a good solution - this does not require you to know the absolute img src:
jQuery('.element img').each(function() {
jQuery(this).attr('src', jQuery(this).attr('src').replace("find_", "replace_"));
});
David Hubler
Updated on October 13, 2020Comments
-
David Hubler over 3 years
I'm trying to replace the default Yelp star rating image for businesses with one of my own. To do so I need to find the corresponding image source for each of the possible 5 images that could have loaded. And then, based on that I need to load in the proper image I've created.
<div id="starRating"> <img src="http://yelp-star-1.png"/> </div>
So, yelp-star-1.png would be replaced with my-star-1.png. So on and so forth. This is probably pretty simple, but I'm new to jQuery and everything I've found has not worked properly. Your expertise is very much appreciated!
-
David Hubler almost 12 yearsThe tricky part for me is that I have to use either my-star-1, my-star-2, my-star-3, my-star-4 or my-star-5 based on the image that gets loaded from Yelp. I'm having a hard time knowing how to find the yelp image that loads so that I can replace it with the correct image.
-
JeremyWeir almost 12 yearsAre you asking how to do string replacement? You aren't being very clear.
-
Jasper Mogg almost 12 yearsSounds like he doesn't know the names of the yelp img files... Use firebug to inspect them? Or in fact most browsers now?