jquery - 使用 jquery 和复选框显示/隐藏多个 div

标签 jquery html css checkbox

我正在尝试使用各种复选框显示/隐藏多个 div。我的目标是当用户选择一个或多个类别时 CMS 给出的 div 类。

这对一个类来说工作得很好,但是一旦将多个类分配给一个 div,它们就会发生冲突,这会把整个事情搞砸。

复选框的 HTML

    <ul class="checkboxes">
        <li class="dropper"><a href="#"><label>Project Management<input id="box1" type="checkbox" checked="checked" name="checkbox-01" /><span id="box1"></span></label></a></li>
        <li><a href="#"><label>Copywriting<input id="box2" type="checkbox" checked="checked" name="checkbox-02" /><span id="box2"></span></label></a></li>
        <li><a href="#"><label>Design<input id="box3" type="checkbox" checked="checked" name="checkbox-03" /><span id="box3"></span></label></a></li>
        <li><a href="#"><label>Editing<input id="box4" type="checkbox" checked="checked" name="checkbox-04" /><span id="box4"></span></label></a></li>
        <li><a href="#"><label>Multimedia<input id="box5" type="checkbox" checked="checked" name="checkbox-05" /><span id="box5"></span></label></a></li>
        <li><a href="#"><label>Advertising<input id="box6" type="checkbox" checked="checked" name="checkbox-06" /><span id="box6"></span></label></a></li>
        <li><a href="#"><label>Consultancy<input id="box7" type="checkbox" checked="checked" name="checkbox-07" /><span id="box7"></span></label></a></li>
        <li class="dropper"><a href="#"><span id="reset-toggles" class="reset">Reset</span></a></li>
    </ul>

我要显示/隐藏的 div 的 HTML

<div class="box-shadow copywriting design editing">
  <div class="caption">
      <h3>Scottish Hosteler Magazine</h3>
      <h4>Scottish Youth Hostel Association</h4>
      <p><a href="case-study-L1.php">Find out more &gt; &gt;</a></p>
  </div>
  <img src="img/tile1.jpg"/>
</div>

<div class="box-shadow copywriting design">
  <div class="caption">
      <h3>Scottish Dental Magazine</h3>
      <h4>Scottish Dental</h4>
      <p><a href="case-study-L2.php">Find out more &gt; &gt;</a></p>
  </div>
  <img src="img/tile2.jpg"/>
</div>

和 jQuery

$(document).ready(function() {

$("#reset-toggles").click(function() {
  $("input[type=checkbox]").attr("checked", !0);

  }), $("#box1").click(function() {
      $(".projman").fadeToggle("fast", "linear");

  }), $("#box2").click(function() {
      $(".copywriting").fadeToggle("fast", "linear");

  }), $("#box3").click(function() {
      $(".design").fadeToggle("fast", "linear");

  }), $("#box4").click(function() {
      $(".editing").fadeToggle("fast", "linear");

  }), $("#box5").click(function() {
      $(".multimedia").fadeToggle("fast", "linear");

  }), $("#box6").click(function() {
      $(".advertising").fadeToggle("fast", "linear");
  });
});

假设用户只想查看带有“design”和“copywriting”类的div,它会隐藏顶部示例,因为它还包含类“editing”

基本上我所追求的是允许组合工作的代码,即如果用户选择“设计”和“文案”,它将仅显示具有这两个类的 div,而不显示具有其他类(例如“编辑”)的 div还有

非常复杂和令人沮丧!

最佳答案

您正在将 #box1#box2 等唯一 ID 分配给多个元素,这在 HTML 中是禁止的,请在您要应用引用的地方使用类多个元素。

在你的情况下,我假设你想将你的 jQuery 处理程序应用到复选框元素,所以试试这个:

<li class="dropper">
    <label for="box1">Project Management</label>
    <input id="box1" type="checkbox" checked="checked" name="checkbox-01">
</li>
  • 我删除了 span,因为它是空的并复制了一个唯一 ID,我删除了 anchor 标记,因为它看起来也没什么用。

关于jquery - 使用 jquery 和复选框显示/隐藏多个 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20080844/

相关文章:

javascript - 使用 jQuery UI 的嵌套 Accordion 不显示下一个列表项

javascript - 使用本地存储中保存的数据填充 HTML 表单

javascript - 创建部分 View 以在索引页面中创建新内容

html - 圆 Angular TD 不工作

jquery 图像 slider 导航选项卡背景图像在 IE 中没有改变

javascript - 图像不透明度不起作用

javascript - 动态事件类不工作 bootstrap + jQuery + navbar.php

javascript - jQuery Tablesorter 动态加载 CSV

html - 水平导航栏 : How to center text and set colours

javascript - Polymer 英雄转换的 Z-index