显示div依赖于值

时间:2017-01-27 12:12:58

标签: jquery html

我试图根据我选择的整体价值显示或隐藏div:

以下是演示:https://jsfiddle.net/wrfvukjv/

<script type="text/javascript">
function recalculate() {
    var sum = 0;
    $("input[type=radio]:checked").each(function () {
        sum += parse($(this).val());
        });
    $("#sum").html(sum.toFixed(2));
}

$("input[type=radio]").change(function () {
    recalculate();
});

</script>

我在这里试过:

if (sum > 2)
{
    console.log('showmessage');

} 
else
{
    console.log('no message');
}

但它只返回没有消息

3 个答案:

答案 0 :(得分:1)

您已更新jsFiddle

Javascript:

function recalculate() {
    var sum = 0;
    $("input[type=radio]:checked").each(function () {
        sum += parseFloat($(this).val());
        });
    $("#sum").html(sum.toFixed(2));
    if(sum >= 2) $("#message").show();
    else $("#message").hide();
}

$("input[type=radio]").change(function () {
    recalculate();
});

您的消息的HTML:

<div id="message">
  Show message IF overall sum is >= 2<br>
  Hide if < 2
</div>

还有一点CSS用于在页面加载时隐藏#message

#message {
  display: none;
}

答案 1 :(得分:1)

您可以在recalculate()功能的末尾添加条件:

function recalculate() {
    var sum = 0;
    $("input[type=radio]:checked").each(function () {
        sum += parseFloat($(this).val());
        });
    $("#sum").html(sum.toFixed(2));

    if(sum >= 2){          
        $("#message").show();
    }else{
        $("#message").hide();
    }
}

答案 2 :(得分:0)

也可以用更少的代码完成。见下文。 #message最初是隐藏的,当:radio:checked值总和大于或等于2时,您会显示#message

CSS

#message{
  display:none
}

<强> JQUERY

var sum=0;
$("input[type=radio]").change(function () {
    sum=sum+parseInt($(this).val());//ASSUMING VAL TO BE INT ONLY
    sum>=2?$("#message").show():$("#message").hide()
});

WORKING FIDDLE