0

我正在使用下拉框中的项目选择来隐藏和显示 div。我是 jquery 的新手。我希望能够测试多个值,这样如果选择了 p1、p2 和 p3,则将显示 id 为指定源的 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>

这行得通。

  $('#myselect').change(function () {
        ($(this).val() == "p1") ? $('#specify-source').show() : $('#specify-source').hide();
    });

我想测试多个值,例如 p1、p2、p3

4

2 回答 2

0

只需使用 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;.

于 2013-10-04T13:39:03.913 回答
0

来自 Jquery 文档

<select multiple="multiple">元素的情况下, .val() 方法返回一个包含每个选定选项的数组

http://api.jquery.com/val/

您可以循环数组以查看其中是否存在。

于 2013-10-04T13:39:50.477 回答