javascript - :checked not working when input tag is inside label tag CSS

标签 javascript jquery html css

我能够让这段代码工作:

[data-field-name="HideAndShow"] {
  opacity: 0;
  max-height: 0;
  overflow: hidden;
}

input[id="UniqueCheckbox"]:checked ~ [data-field-name="HideAndShow"] {
  opacity: 1 !important;
  max-height: 100px !important;
  overflow: visible !important;
  display: block !important;
}
<input id="UniqueCheckbox" type="checkbox">
<label>Click to show</label>
    
<div data-field-name="HideAndShow">
  Hide and Show This
</div>

在我尝试设置样式的应用程序中,它在标签内有输入,但我无法让它工作:

[data-field-name="HideAndShow"] {
  opacity: 0;
  max-height: 0;
  overflow: hidden;
}

input[id="UniqueCheckbox"]:checked ~ [data-field-name="HideAndShow"] {
  opacity: 1 !important;
  max-height: 100px !important;
  overflow: visible !important;
  display: block !important;
}
<label><input id="UniqueCheckbox" type="checkbox">Click to show</label>
    
<div data-field-name="HideAndShow">
  Hide and Show This
</div>

我设计的应用程序非常锁定,我无法更改它。有没有办法将 HTML 结构锁定到位?理想情况下仅使用 CSS。

编辑

我很乐意考虑 jquery 解决方案。

谢谢,

最佳答案

如果有人感兴趣,可以用 jquery 解决:

 
$(document).ready(function(){
    $("#UniqueCheckbox").click(function(){
  if ( typeof hidden === 'undefined' || hidden == true ) {
      $(document.querySelectorAll('[data-field-name="HideAndShow"]')).show(100); 
      hidden = false;
    } 
 else {
      $(document.querySelectorAll('[data-field-name="HideAndShow"]')).hide(100); 
      hidden = true;
  }
      });  
});
[data-field-name="HideAndShow"] {
display:none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>


<label><input id="UniqueCheckbox" type="checkbox">Click to show</label>
    
<div style="" data-field-name="HideAndShow">
  Show and Hide This
</div>

关于javascript - :checked not working when input tag is inside label tag CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37669461/

相关文章:

jquery - Grails:标签 [remotelink] 不存在。找不到 namespace 的标记库:g

javascript - 使用 Jquery 选择动态给定的 Id 不起作用

javascript - 将文本框输入传递到另一个页面时出现问题 - 特别是 javascript 和 html 中的名字和姓氏

javascript - PhpStorm 替换为 js 正则表达式

javascript - 使用cloneNode时负rowIndex

javascript - 尝试写入 firestore 时“RestConnection 提交失败并出现错误”

javascript - 宽度为 auto 的内联 block 元素不会更新

javascript - 如何从 aspx 文件中的脚本将值设置为 script(.js) 文件中的变量

javascript - 为什么下面的代码生成 4 个元素而不是 2 个?

html - 有些字母没有出现 html