我想创建一个当子元素不显示为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;
元素,不显示任何内容
如何才能达到最佳效果?
答案 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>