根据变量值隐藏内容

Hiding content depending on variable value

我正在估算价格。

如何正确编写 jQuery 函数来检查变量并根据该数量 hides/shows 相应地确定 div 元素。

所以如果我有:

a HTML div ID 'Answer'

<div id="answer">Hide Me</div>

$("#answer")...

一个变量(这个变量会改变)

var x = 30

现在我知道 css 隐藏 div 会是:

#answer{
visibilty:hidden;
}

隐藏检查这些特定参数的函数的正确方法是什么?例如如果 x > 20 则隐藏 etc

现在我知道有很多方法可以做到这一点,他们可能不需要 jQuery,如果是这种情况请通知我。也许它只需要JS。我知道有很多方法可以做到这一点,而不仅仅是一种,所以如果您有不同的方法,请发表评论,因为我很想学习。

如有任何帮助,我们将不胜感激。

干杯

F

执行此函数提供变量 v:

var checkVar = function(v) {
   var target = $('#answer');
   if (parseInt(v) > 20) {
      target.hide();
   } else {
      target.show();
   }
}

例如,如果变量来自一个选择:

$('#selectId').on('change', function() {
   checkVar($(this).val());
});

删除 CSS。您可以在 jQuery

中完成
if(x>20){
 $('#answer').hide();
}

你可以用这个

   $("#answer").hide();

请注意,您还可以删除或添加 class:

$('#answer').removeClass('hide');
$('#answer').addClass('hide');

但是你想要做的是$('#answer').hide();或者$('#answer').show();

@kapantzak 的回答看起来不错。但是请将您的逻辑和样式分开,如果您不打算将变量用于实际元素两次,我就不会这样做。去吧:

var checkVar = function(var) {
   var element = $('#answer');
   if (parseInt(var) > 20) {
      element.addClass('hidden');
   }else{
      element.removeClass('hidden');
   }
}

在你的 CSS 中去:

#answer.hidden{
 display: none;
}

此外,根据您的喜好,display: none; 不显示对象的任何内容,而 visibility: hidden 隐藏对象,但对象占用的 space 将保持占用状态。

HTML

<input id="changingValue">
...
<div id="answer">Hide Me</div>

CSS(如果您在加载时检查值则不是强制性的)

#answer{ display:none;}

JS

var limit = 20;
$(function(){
    $("#changingValue").change(function(){
         if(parseInt($("#changingValue").val())<limit) { $("#answer").show(); }
         else { $("#answer").hide(); }
    });
});