Controllo tra due stringhe

  • Creatore Discussione Creatore Discussione Fabio90
  • Data di inizio Data di inizio

Fabio90

Utente Attivo
29 Feb 2012
507
0
16
Buongiorno,
E' possibile fare un controllo fra due stringhe di questo tipo?

HTML:
<span class="PricebasePrice">1060,00 €</span>
<span class="PricesalesPrice">1030,00 €</span>

Codice:
var basePrice = "Prendo il valore basePrice";
var salesPrice = "Prendo il valore salesPrice";

IF 
var salesPrice < var basePrice
Stampa immagine prezzo scontato

Grazie per l'aiuto
 
Grazie criric!
adesso sono arrivato a questa situazione funzionante =)

Codice:
<script type="text/javascript">
jQuery( document ).ready(function( $ ) {
var basePrice = $("#productPrice20 .PricebasePrice").text(); //prendo il valore iniziale 1000€
var parse1 = parseFloat(basePrice); //parsing valore che diventa 1000
var salesPrice = $("#productPrice20 .PricesalesPrice").text(); prendo il valore finale 800€
var parse2 = parseFloat(salesPrice); parsing valore che divenda 800

if(parse2 < parse1) { //se parse2 < parse1
$("#productPrice20 .PricebasePrice").hide(); //nascondo prezzo iniziale
$("#productPrice20").append("<img class='scountImg' src='images/offerta.png'>") //aggiungo immagine offerta
}

});
</script>

Tutto bene il punto è che essendo un codice dinamico dovrei sostituire il tutto con $this..
Ho qualcosa di questo tipo ma non funziona...

Codice:
<script type="text/javascript">
jQuery( document ).ready(function( $ ) {
var basePrice = $(this).find(".PricebasePrice").text();
var parse1 = parseFloat(basePrice);
var salesPrice = $(this).find(".PricesalesPrice").text();
var parse2 = parseFloat(salesPrice);

if(parse2 < parse1) {
$(this).("PricebasePrice").hide();
$(this).append("<img class='scountImg' src='images/offerta.png'>")
}

});
</script>
Puoi aiutarmi?
Grazie!
 
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>
 
Stupendo meraviglio fantastico. Grazie per la spiegazione ed il codice. Gentilissimo
 
Buongiorno,
scusate se riapro il topic ma ho notato un problema :D

Come mai lo script è funzionante solo su firefox? o.O
 

Discussioni simili