2012-06-21 71 views
7

我試圖用自己的企業替換企業的默認Yelp星級評級圖像。爲此,我需要找到可能已加載的每個可能的5個圖像的相應圖像源。然後,基於此,我需要加載我創建的適當圖像。動態替換圖像源與jQuery

<div id="starRating"> 
    <img src="http://yelp-star-1.png"/> 
</div> 

因此,yelp-star-1.png將被替換爲my-star-1.png。等等等等。這可能很簡單,但我是新來的jQuery和我發現的一切工作不正常。非常感謝您的專業知識!

+0

要替換的文件名和替換文件名之間是否存在邏輯關係? – ChrisW

+1

這聽起來像是你試圖找到Yelp分數來設置你的圖像應該是什麼。如果是這樣,我認爲你需要看看他們的API:http://www.yelp.com/developers/documentation/v2/overview –

回答

10
$("#starRating img").attr("src", "http://pathto/my-star-1.png") 

編輯

我認爲你問如何動態替換基於在src還有什麼目前。所以,如果有在弦一些直接的區別,也許嘗試

var img = $("#starRating img"); 
img.attr("src", img.attr("src").replace("yelp", "my")); 
+0

對我來說,棘手的部分是,我必須使用我的明星-1,我的-star-2,my-star-3,my-star-4或my-star-5,它們基於從Yelp加載的圖像。我很難知道如何找到加載的yelp圖像,以便我可以用正確的圖像替換它。 –

+2

你在問怎麼做字符串替換?你不是很清楚。 – JeremyWeir

+1

聽起來像他不知道yelp img文件的名稱...使用螢火蟲檢查他們?或者實際上現在大多數瀏覽器? –

4

如果你只是想這樣做沒有任何模式的基本替代:

$('img[src="http://website.com/images/yelp-star-1.png"]').attr('src','http://website.com/images/my-star-1.png'); 

這可能與誰擁有一個src圖像中使用屬性開始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")); 
}); 
4

@GrayB給了我一個很好的解決方案 - 這並不需要你知道絕對IMG SRC:

jQuery('.element img').each(function() { 
    jQuery(this).attr('src', jQuery(this).attr('src').replace("find_", "replace_")); 
});