jquery - 如果子元素满足指定条件,则默认不显示父元素

标签 jquery css

我有以下列表:

<ul>
<li class="container">
<div class="age">24</div>
<div class="married">no</div>
</li>

<li class="container">
<div class="age">27</div>
<div class="married">yes</div>
</li>

<li class="container">
<div class="age">34</div>
<div class="married">no</div>
</li>
</ul>

想要的结果

div.married 包含yesli 元素默认不显示。 This code使用 Jquery 做到这一点。

但在我的元素中有很多条目,所以每次加载页面时,您都可以看到相关条目在几分之一秒内闪烁。我认为这是因为在完全加载 body 标记末尾上方的行上加载的脚本之前,页面开始显示在您的浏览器上。

关于解决方案的问题和评论

  • 有没有办法只使用 css 来完成我想做的事情? (有 :contains 在 css 中,但我不想依赖它,因为它是 已弃用 css3)

  • 我尝试在 head 元素中为该 Jquery 行创建一个单独的脚本条目,但是 仍然有明显的闪烁。

最佳答案

恐怕纯 CSS 是不可能的。如果您想避免闪烁效果,我建议采用这种方法:

js:

$(document).ready(function() {
  $(function(){
  ////Jquery in here/////  

  $(".married:contains(no)").parent().css('display','block');

   //////////////////////
 });
});

CSS:

li {
 display:none;
}

关于jquery - 如果子元素满足指定条件,则默认不显示父元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14213700/

相关文章:

javascript - 将对象插入数组

javascript - 在事件监听器中执行未定义的回调是否可以?

javascript - 在新窗口中打开 Highcharts xAxis 链接

html - 菜单(链接)在错误页面上不起作用...?

html - @media 查询未在范围内应用

javascript - 免除表单的可点击行为

javascript - 如何从div中的图像创建数组

javascript - Bootstrap 3 grid row - 中心对齐图像和文本

javascript - 如何将 margin-right 分配给动态生成的聊天框

jquery - 如何将一个类添加到所有类的第一段?