基于其他值的文本字段的可见性

时间:2018-11-28 05:49:46

标签: javascript jquery

嗨,我是JavaScript新手,对您的帮助或建议将不胜感激。

我希望我的两个文本字段可见。

下面的代码仅适用于不带分号的单个代码,但有时适用于带分号的变量(如果为多个),我只是想知道是否有可能我会很感激建议。

var comp = "apple";

$( document ).ready(function() {
   var comp = "apple";
   $('#txt1').hide();
   $('#txt2').hide();
   $('#txt3').hide();
   if (comp == "apple"){
     $('#txt1').show();
   }

});   

但如果

 var comp = "apple;ice;grapes"; 

由于 apple grapes 在变量中,因此 apple grapes 应该可见。

2 个答案:

答案 0 :(得分:2)

如果操作数相等,则

==返回 true 。显然,"apple;ice;grapes" != "apple"

您可以使用String.prototype.includes()

  

includes()方法确定是否可以在另一个字符串中找到一个字符串,并根据需要返回true或false。

请注意:您可以将多个 id 作为选择器的一部分传递给 hide()。但是最好使用 CSS 设置 style

$( document ).ready(function() {
  var comp = "apple;ice;grapes"; 
  //$('#txt1,#txt2,#txt3').hide();
  if (comp.includes("apple") && comp.includes("grapes")){
    $('#txt1, #txt2').show();
  }
});
#txt1,#txt2,#txt3{
  display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="txt1">apple</div>
<div id="txt2">grapes</div>
<div id="txt3">ice</div>

答案 1 :(得分:1)

尝试一下

<script> 
$( document ).ready(function() {
   var comp = "apple;ice;grapes";
   var comp = comp.split(";"); //comp[0]='apple' comp[1]='ice' comp[2]='grapes';
        $('#txt1').hide();
        $('#txt2').hide();
        $('#txt3').hide();
   if (comp[0] == "apple"){
         $('#txt1').show();
   }
   if(comp[1] == "ice"){
         $('#txt2').show();
   } 

});   
</script>