2012-06-21 11 views
7

Sto cercando di sostituire l'immagine di classificazione a stelle di Yelp predefinita per le attività commerciali con una delle mie. Per fare ciò ho bisogno di trovare la fonte d'immagine corrispondente per ognuna delle 5 possibili immagini che potrebbero essere caricate. E poi, sulla base di questo ho bisogno di caricare l'immagine corretta che ho creato.Sostituisci dinamicamente la sorgente di immagini con jQuery

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

Quindi, Yelp stelle-1.png sarebbe sostituito con il mio stelle-1.png. Così via. Questo è probabilmente piuttosto semplice, ma sono nuovo di jQuery e tutto ciò che ho trovato non ha funzionato correttamente. La tua esperienza è molto apprezzata!

+0

C'è una logica tra il nome del file da sostituire e il nome del file sostitutivo? – ChrisW

+1

Sembra che tu stia cercando di scoprire quale sia il punteggio di Yelp per impostare quale dovrebbe essere la tua immagine. Se è così, penso che sia necessario esaminare la loro API: http://www.yelp.com/developers/documentation/v2/overview –

risposta

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

EDIT

Penso che tu stai chiedendo come sostituire dinamicamente lo src in base a quello che c'è attualmente. Quindi, se c'è qualche differenza diretta nelle stringhe, magari provare

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

La parte più difficile per me è che devo usare my-star-1, my -star-2, my-star-3, my-star-4 o my-star-5 in base all'immagine caricata da Yelp. Ho difficoltà a sapere come trovare l'immagine guasta che viene caricata in modo da poterla sostituire con l'immagine corretta. –

+2

Stai chiedendo come eseguire la sostituzione delle stringhe? Non sei molto chiaro. – JeremyWeir

+1

Sembra che non conosca i nomi dei file img di yelp ... Usa firebug per ispezionarli? O di fatto la maggior parte dei browser ora? –

4

Se si sta solo cercando di fare sostituire una base senza alcun modello:

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

Questo potrebbe essere utilizzato con le immagini che hanno una src attribuire a cominciare 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 mi ha dato una buona soluzione - questo non richiede di conoscere l'img src assoluta:

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