jQuery - 比较两个值并显示或隐藏div

时间:2016-07-06 14:30:58

标签: javascript jquery html

https://jsfiddle.net/6k6ehnn2/

您好, 我需要做,如果值大于或等于1000.00,则显示div .boleto,但不显示...我在比较两个字符串时哪里出错了?

<span class="valor">R$ 200,00</span>
<div class="boleto">pagamento em boleto</div>    
$(function(){
    var valorMinimoBoleto = '1000,00';
    var valorTratado = $(".valor").html().replace('R$ ','');
    var valorBoleto = valorTratado;
    if ( valorBoleto >= valorMinimoBoleto ) {           
        console.log('valor exibe boleto');
    } else {
        $('.boleto').hide();
        console.log('valor não exibe boleto');
    };    
});

3 个答案:

答案 0 :(得分:2)

因为valorMinimoBoletovalorBoleto都是字符串,所以你的if条件在那里不起作用。

因此,首先使用像这样的number()方法将它们转换为数字

&#13;
&#13;
$(function(){
    var valorMinimoBoleto = 100000;
    var	valorTratado = $(".valor").html().replace('R$ ','');
    var	valorBoleto = Number(valorTratado);
    	if ( valorBoleto >= valorMinimoBoleto ) { 
    		console.log('valor exibe boleto');
    	} else {
    		$('.boleto').hide();
    		console.log('valor não exibe boleto');
    	};    
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="valor">R$ 200,00</span>
<div class="boleto">pagamento em boleto</div>
&#13;
&#13;
&#13;

正如LinkinTED 22所说,我们也可以使用toggle()函数代替if..else,如下所示:

&#13;
&#13;
$(function(){
    var valorMinimoBoleto = 100000;
    var	valorTratado = $(".valor").html().replace('R$ ','');
    var	valorBoleto = Number(valorTratado);
    	$('.boleto').toggle( valorBoleto >= valorMinimoBoleto );
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="valor">R$ 200,00</span>
<div class="boleto">pagamento em boleto</div>
&#13;
&#13;
&#13;

希望有所帮助:)

答案 1 :(得分:0)

您在这里比较两个字符串if ( valorBoleto >= valorMinimoBoleto )

您需要首先解析它们,然后才能进行数字比较。

E.g:

   var valorMinimoBoleto = '1000,00';
    var valorTratado = $(".valor").html().replace('R$ ','');
    var valorBoleto = valorTratado;

   var parsedValorMinimoBoleto = parseFloat(valorMinimoBoleto);
   var parsedValorBoleto = parseFloat(valorBoleto);


    if (parsedValorBoleto >= parsedValorMinimoBoleto) {           
        console.log('valor exibe boleto');
    } else {
        $('.boleto').hide();
        console.log('valor não exibe boleto');
    };    

答案 2 :(得分:0)

我们希望它是一个数字而不是字符串,所以不需要',我认为你必须使用.而不是,小数点

这是代码正常工作,下面是代码,但代码更大。

&#13;
&#13;
$(function() {
  var valorMinimoBoleto = 1000.00;
  var valorTratado = $(".valor").html().replace('R$ ', '').replace(',', '.');
  var valorBoleto = valorTratado;
  if (valorBoleto >= valorMinimoBoleto) {
    console.log('valor exibe boleto');
  } else {
    $('.boleto').hide();
    console.log('valor não exibe boleto');
  };
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="valor">R$ 200,00</span>
<div class="boleto">pagamento em boleto</div>
&#13;
&#13;
&#13;

&#13;
&#13;
$(function() {
  var valorMinimoBoleto = 1000.00;
  var valorTratado = $(".valor").html().replace('R$ ', '').replace(',', '.');
  var valorBoleto = valorTratado;
  if (valorBoleto >= valorMinimoBoleto) {
    console.log('valor exibe boleto');
  } else {
    $('.boleto').hide();
    console.log('valor não exibe boleto');
  };
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="valor">R$ 1200,00</span>
<div class="boleto">pagamento em boleto</div>
&#13;
&#13;
&#13;

希望这是你正在寻找的。