javascript - 将类从不打印更改为通过 HTML 中的复选框打印

标签 javascript html css

我有很多复选框,我只想打印已选中的复选框。我试过切换,在我检查之前它一直有效。

这是我的代码:

CSS

<style type="text/css" media="print">
.dontprint
  { display: none; }
</style>

HTML

<div class="dontprint">
  <div class="checkbox"> <label><input type="checkbox"id="coms">  \\Private\Computer Services </label> </div>
  <div class="coms">
    <select class="form-control">
        <option >READ</option>
        <option >EDIT</option>
    </select>
  </div>
</div>

JS

$("#coms").click(function(){
    $(".dontprint").toggle();
});

最佳答案

不要切换类的可见性,切换类本身。

$("#coms").click(function() {
    $(this).parent().toggleClass("dontprint", !$(this).is(":checked"));
});

并且为了避免必须为每个 ID 重复此代码,您还应该为复选框指定一个类,而不是将点击处理程序绑定(bind)到特定的 ID。或者,如果它们都在一个特定的 DIV 中,您可以这样做:

$("#container :checkbox").click(function() {
  $(this).closest(".hidable").toggleClass("dontprint", !this.checked);
});
.dontprint {
  background-color: grey;
}
@media print {
  .dontprint {
    display: none;
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="container">
  <div class="hidable dontprint">
    <div class="checkbox">
      <label>
        <input type="checkbox" id="coms1">Checkbox 1</label>
    </div>
    <div class="coms">
      <select class="form-control">
        <option>READ</option>
        <option>EDIT</option>
      </select>
    </div>
  </div>
  <div class="hidable dontprint">
    <div class="checkbox">
      <label>
        <input type="checkbox" id="coms2">Checkbox 2</label>
    </div>
    <div class="coms">
      <select class="form-control">
        <option>READ</option>
        <option>EDIT</option>
      </select>
    </div>
  </div>
  <div class="hidable dontprint">
    <div class="checkbox">
      <label>
        <input type="checkbox" id="coms3">Checkbox 3</label>
    </div>
    <div class="coms">
      <select class="form-control">
        <option>READ</option>
        <option>EDIT</option>
      </select>
    </div>
  </div>
</div>

我不知道如何在单独的窗口中打开 Stack Snippets,以便打印它,但我制作了一个 jsfiddle,它表明媒体查询有效。

http://jsfiddle.net/barmar/tyufjv6g/show/

关于javascript - 将类从不打印更改为通过 HTML 中的复选框打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31410938/

相关文章:

javascript - 在滚动导航时开发具有扩展/收缩部分/栏的网站?

javascript - Jquery - 根据维护其他过滤器的自定义属性隐藏 LI

html - 我想让一个 div 在另一个 div 中居中,另一个 div 在它下面居中。

html - Z-index 问题 - 如何将子元素带到父元素的下面?

jquery - 轮播指示器不适用于 Bootstrap

javascript - 如何使浏览器后退按钮忽略主题标签?

javascript - 如何向此 JavaScript 和 HTML 代码添加一个按钮,以便当我按下该按钮时,我的交通灯序列运行一次?

javascript - 推送路线时将对象作为 Prop 传递

Javascript-通过函数和函数参数设置 DIV 的背景图像

html - padding-top 影响 div 中的其他类