孩子不显示时隐藏父母

时间:2019-06-07 09:37:05

标签: javascript jquery

我想创建一个当子元素不显示为html时隐藏父对象的jQuery。

我的html看起来像这样:

<li class="formListBlock payment_mollie_applepay paymentchecked">
    <label for="p_method_mollie_applepay" style="display: none;"></label>
</li>

尝试:

<script>
if $("label[for='p_method_mollie_applepay']").not(":visible"){  
$(this).parent().hide();
}   
</script>

所以现在我想在标签为<li>类时隐藏display: none;元素,不显示任何内容

如何才能达到最佳效果?

1 个答案:

答案 0 :(得分:1)

要实现此目的,您可以在使用:has()li之前使用label过滤hide()元素以仅检索包含隐藏的remove()元素的元素。

$('li:has(label:hidden)').hide();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
  <li class="formListBlock payment_mollie_applepay paymentchecked">
    <label for="p_method_mollie_applepay" style="display: none;">Hidden</label>
  </li>
  <li class="formListBlock payment_mollie_applepay paymentchecked">
    <label for="p_method_mollie_applepay">Visible</label>
  </li>
  <li class="formListBlock payment_mollie_applepay paymentchecked">
    <label for="p_method_mollie_applepay" style="display: none;">Hidden</label>
  </li>
  <li class="formListBlock payment_mollie_applepay paymentchecked">
    <label for="p_method_mollie_applepay">Visible</label>
  </li>
</ul>