jquery - 使用 jQuery 通过 Select 显示/隐藏多个 DIV

标签 jquery dropdown

我基本上和很多其他人有同样的情况。

通过在 Google 内进行广泛的搜索,我找到了几种不同的方法,人们声称他们的方法有效。我还没有让任何一个正常工作。我对 jQuery 的了解还不够,无法完全理解如何从头开始编写此代码,因此我现在依赖于非常好的示例。

我一直在尝试使用的内容(基于我发现并尝试过的示例)是:

<script type="text/javascript">
    $(document).ready(function() {
        ('.box').hide();
        ('#dropdown').change(function() {
        ('#divarea1')[ ($(this).val() == 'area1') ? 'hide' : 'show' ]()
        ('#divarea2')[ ($(this).val() == 'area2') ? 'hide' : 'show' ]()
        ('#divarea3')[ ($(this).val() == 'area3') ? 'hide' : 'show' ]()
        });
    });
</script>
<form>
    <select id="dropdown" name="dropdown">
        <option value="0">Choose</option>
        <option value="area1">DIV Area 1</option>
        <option value="area2">DIV Area 2</option>
        <option value="area3">DIV Area 3</option>
    </select>
</form>
<div id="divarea1" class="box">DIV Area 1</div>
<div id="divarea2" class="box">DIV Area 2</div>
<div id="divarea3" class="box">DIV Area 3</div>

注意:我在 html 周围使用括号而不是小于和大于符号,以便在此消息中正确显示。 当我测试这个时我得到什么:

首次加载时未选择任何内容 => 不显示 DIV。

当我选择 DIV 区域 1 => 显示 DIV 区域 2 和 3。

当我选择 DIV 区域 2 => 显示 DIV 区域 1 和 3。

当我选择 DIV 区域 3 => 显示 DIV 区域 1 和 2。

我这一天脑子都炸了。我可以做什么来解决这个问题?

最佳答案

请注意,您在 JS 代码中缺少对 jQuery 的 $ 引用。我假设这只是问题中的一个拼写错误。

实现此目的的最简单方法是在选择更改时show()所有div,然后使用所选值隐藏相关的单个div它的id。像这样的事情:

$(document).ready(function() {
  $('#dropdown').change(function() {
    $('.box').show().filter('#div' + $(this).val()).hide();
  });
});
.box {
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
  <select id="dropdown" name="dropdown">
    <option value="0">Choose</option>
    <option value="area1">DIV Area 1</option>
    <option value="area2">DIV Area 2</option>
    <option value="area3">DIV Area 3</option>
  </select>
</form>
<div id="divarea1" class="box">DIV Area 1</div>
<div id="divarea2" class="box">DIV Area 2</div>
<div id="divarea3" class="box">DIV Area 3</div>

关于jquery - 使用 jQuery 通过 Select 显示/隐藏多个 DIV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49431245/

相关文章:

javascript - 使用 Javascript 将图像叠加在图像上

javascript - 如果另一个下拉列表选择发生更改,则重置一个下拉列表

javascript - 如何从下拉菜单 Angular 加载模板

html - 在下拉菜单中向右放置,位于悬停文本旁边

jQuery 构建一个提交但不导致浏览器重新提交的表单

javascript - 使用 javascript/jquery 完全删除具有特定类的 div 的所有实例?

javascript - 如果文本等于特定值则启动函数

javascript - 如果下拉列表中没有选定值,则禁用按钮

wordpress - Woocommerce 结帐 : Add placeholder in country dropdown

javascript - 数组查找, native 还是通过 jQuery?