Jquery:如何测试下拉列表的多个值

Jquery:如何测试下拉列表的多个值,jquery,Jquery,我使用下拉框中的项目选择来隐藏和显示div。 我不熟悉jquery。我希望能够测试多个值,如果 选择p1、p2和p3时,将显示id为specify source的div。到目前为止,它适用于p1。我如何为多个值编写这个 <select name = "genericId" id="myselect" > <option value="p1">Section1</option> <option value="p2">Section2</opti

我使用下拉框中的项目选择来隐藏和显示div。 我不熟悉jquery。我希望能够测试多个值,如果 选择p1、p2和p3时,将显示id为specify source的div。到目前为止,它适用于p1。我如何为多个值编写这个

<select name = "genericId" id="myselect" >
<option value="p1">Section1</option>
<option value="p2">Section2</option> 
<option value="p3">Section3</option>
<option value="j2">Section4</option> 
<option value="j3">Section5</option>
</select>

 <div id="specify-source">
    <p class="headerSection">Select Branch</p>
    <select name="listOfBranches" id="brnlist">
        <option value="0">Branch 1</option>
        <option value="1">Branch 2</option>
        <option value="2">Branch 3</option>
    </select>
</div>

我想测试多个值,如p1、p2、p3,只需使用OR运算符将条件添加到if语句中即可

$('#myselect').change(function () {
  if($(this).val() == "p1" || $(this).val() == "p2" || $(this).val() == "p3"){
     $('#specify-source').show()
  }else
  { 
     $('#specify-source').hide();
  }
});
为了进行7次比较,让我们使用switch语句:

$('#myselect').change(function () {
  var target = $(this).val();
  switch (target)
   {
    case "p1":
    case "p2":
    case "p3":
     $('#specify-source').show()
    break;
    case "p4":
    //your p4 code
    break;
    default:
    //default code to execute
     $('#specify-source').hide();
   }
});

当要执行的动作相似时,在不使用
break的情况下,将条件放在彼此之后

来自Jquery文档

元素的情况下,.val() 方法返回包含每个选定选项的数组


您可以循环数组以查看是否存在任何一个。

我计划进行大约7次比较,在第4次比较中,p4 Jquery似乎在抱怨。也许你可以比较的变量数量是有限制的。如何处理7个比较?@user2320476一个switch语句就是最好的方法,给我5分钟,我会把它打出来。
$('#myselect').change(function () {
  var target = $(this).val();
  switch (target)
   {
    case "p1":
    case "p2":
    case "p3":
     $('#specify-source').show()
    break;
    case "p4":
    //your p4 code
    break;
    default:
    //default code to execute
     $('#specify-source').hide();
   }
});