jquery - 如果类不可见,则 HTML 显示元素
问题描述
我使用大量 jQuery 构建了这个精心制作的页面,基于类隐藏和显示元素。
要获得一个想法:
<p class='lookup'>You can lookup all the values.</p>
如果用户不能进行查找,我只是做一个
$('.lookup').hide() ;
在 jQuery 中。这一切都很完美,一切都很好。
现在我只在 HTML 中添加一个简单的注释。但是,对于“查找”类何时可见或不可见,该注释是不同的。(基本上是一种if else。)
<p class='lookup'>Show me when class lookup is visible</p>
<p ????>Show me when class lookup is not visible</p>
在 html/css 甚至 jQuery(但在现有 jQuery 之外)中是否有一个非常简单的解决方案或 hack 可以在完成时显示一个段落并在$('.lookup').hide() ;
完成时隐藏$('.lookup').show() ;
?
我只是好奇,我已经使用了一个额外的类“noLookup”并向现有的 jQuery 添加了代码,但感觉应该有一个基本的解决方法/解决方案,我只是忽略了。
解决方案
尝试使用style
属性选择器检查.lookup
元素是否隐藏:
$("#chk").on("change", function() {
var lookup = $('.lookup');
if ($(this).is(':checked')) {
lookup.show();
} else {
lookup.hide();
}
});
.no-lookup {
display: none;
}
.lookup[style*="display: none;"] ~ .no-lookup {
display: inherit;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
<label>Toggle lookup</label>
<input id="chk" type="checkbox" checked />
<p class="lookup">You can look up!</p>
<p class="no-lookup">Sorry, you can't look up :(</p>
推荐阅读
- c# - 如何使用 lambda 表达式从列表中获取继承的对象成员
- git - 如何为具有私有 git 子模块的私有仓库设置 GitHub Actions CI 服务?
- variables - 并行 Jenkinsfile 任务中的局部变量
- reactjs - 如果组件中不存在 redux 存储中的值,则重定向用户
- html - 使用视频标签html5时如何在移动设备上显示视频缩略图
- delphi - Indy TCP SSL 多线程
- c - 如何使用 atmega 退出 USART ISR?
- laravel - 如何使用 froala 编辑器上传图片?
- laravel - 断言模拟期望已经过去的正确方法
- android - 如何从相机逐帧捕获而不在Android上保存视频?