Ciao, tieni presente che il
this fa riferimento all'oggetto del contesto specifico in cui il
this stesso viene usato.
Nella prova che hai fatto, chiaramente quel
this non ha alcun riferimento con l'elemento #productPrice20, se è questo ciò che vuoi.
Perché ti funzioni, dovresti ciclare in qualche modo gli elementi in questione.
Presumo, dal momento che non lo hai specificato, che tu abbia una serie di elementi contenitori con un id progressivo tipo productPriceN. Giusto?
Per fare ciò che chiedi, devi selezionare in qualche modo tali elementi.
Potresti applicare una classe a questi elementi, per poterli selezionare, e quindi utilizzare il metodo
each per creare un ciclo.
A quel punto, all'interno del ciclo, puoi usare il
this che farà riferimento ai singoli elementi iterati attraverso il ciclo.
Se non puoi applicare una classe (perché magari non puoi/vuoi modificare direttamente il codice html), puoi comunque selezionare gli elementi sfruttando in qualche modo l'id.
Posto un esempio concreto:
Codice:
<!DOCTYPE HTML>
<html>
<head>
<title>Esempio</title>
<meta charset="utf-8">
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
$(function(){
$(".productPrice").each(function(){
// in alternativa puoi fare riferimento all'id nel modo seguente
//$("div[id^=productPrice]").each(function(){ // cicla tutti gli elementi il cui id inizia per productPrice
var $base = $(".PricebasePrice", this);
var $sales = $(".PricesalesPrice", this);
if(parseFloat($sales.text()) < parseFloat($base.text())) {
$base.hide();
$(this).append("<img class='scountImg' src='images/offerta.png'>");
}
})
})
</script>
</head>
<body>
<div id="productPrice20" class="productPrice">
<span class="PricebasePrice">1060,00 €</span>
<span class="PricesalesPrice">1030,00 €</span>
</div>
<div id="productPrice21" class="productPrice">
<span class="PricebasePrice">900,00 €</span>
<span class="PricesalesPrice">1000,00 €</span>
</div>
<div id="productPrice22" class="productPrice">
<span class="PricebasePrice">900,00 €</span>
<span class="PricesalesPrice">800,00 €</span>
</div>
</body>
</html>