我有以下html:
<div class="um-field field-date">
<p class="form-row " id="date_field">
<label class="date">
<input data-label="Date" data-value="" type="date" class="input-date um-frontend-field um-hide-field" name="date_1521080645" id="date_1521080645"> Date
</label>
</p>
</div>
有一个um-hide-field
类。我需要隐藏适用于该类的整个div。这可能吗?
.um-hide-field {
display:none;
}
隐藏整个div。 就像靠近父div 一样。
你可以使用 javascript 来获取这个...尝试使用parentNode
JavaScript
var hide = document.querySelectorAll(".um-hide-field");
Array.from(hide).forEach(function(elem) {
var div = elem.parentNode.parentNode.parentNode;
div.style.display = "none";
})
<div class="um-field field-date">
<p class="form-row " id="date_field1">
<label class="date"><input data-label="Date" data-value="" type="date" class="input-date um-frontend-field um-hide-field" name="date_1521080645" id="date_1521080645">Date1</label>
</p>
</div>
<div class="um-field field-date">
<p class="form-row " id="date_field2">
<label class="date"><input data-label="Date" data-value="" type="date" class="input-date um-frontend-field" name="date_1521080646" id="date_1521080645">Date2</label>
</p>
</div>
<div class="um-field field-date">
<p class="form-row " id="date_field3">
<label class="date"><input data-label="Date" data-value="" type="date" class="input-date um-frontend-field um-hide-field" name="date_1521080645" id="date_1521080647">Date3</label>
</p>
</div>
或者使用 closest(( jQuery
$("input.um-hide-field").closest(".um-field").hide();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="um-field field-date">
<p class="form-row " id="date_field1">
<label class="date"><input data-label="Date" data-value="" type="date" class="input-date um-frontend-field um-hide-field" name="date_1521080645" id="date_1521080645">Date1</label>
</p>
</div>
<div class="um-field field-date">
<p class="form-row " id="date_field2">
<label class="date"><input data-label="Date" data-value="" type="date" class="input-date um-frontend-field" name="date_1521080646" id="date_1521080645">Date2</label>
</p>
</div>
<div class="um-field field-date">
<p class="form-row " id="date_field3">
<label class="date"><input data-label="Date" data-value="" type="date" class="input-date um-frontend-field um-hide-field" name="date_1521080645" id="date_1521080647">Date3</label>
</p>
</div>
为上面的查询尝试以下代码:
um-field field-date > div > div
{
display:none;
}
鉴于当前的规范,不可能选择"有一个孩子的父母",这个选择器。如果:has
进入标准,你可以做一些类似的事情。
.um-field:has(.um-hide-field)
https://developer.mozilla.org/en-US/docs/Web/CSS/:has
但它仍在开发中,浏览器不支持它。
使用 jquery:如果子级包含类.um-hide-field
则隐藏父级
$(".um-field .um-hide-field").parents('div.um-field').hide();