4 回答
TA贡献1828条经验 获得超4个赞
首先,您的 HTML 无效。您使用的所有元素均无效。你需要纠正这个问题。我在下面的示例中这样做了,但显然这是对您的 UI 做出假设。
要解决您的问题中提出的问题,您可以使用:has选择器
$('.product:has(.out-of-stock-icon) .thumbnail').addClass('oos');
.oos {
opacity: 0.8;
}
img {
display: block;
width: 50px;
height: 50px;
background-color: #C00;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="product" id="product-1">
<div class="thumbnail">
<img />
</div>
<div class="detail">In stock</div>
</div>
<div class="product" id="product-2">
<div class="thumbnail">
<img />
<span class="out-of-stock-icon"></span>
</div>
<div class="detail">Out of stock</div>
</div>
<div class="product" id="product-3">
<div class="thumbnail">
<img />
<span class="out-of-stock-icon"></span>
</div>
<div class="detail">Out of stock</div>
</div>
TA贡献1799条经验 获得超8个赞
在您的情况下,您需要使用parent()(方法遍历 DOM 树中每个元素的直接父级) 并且 该css方法为所选元素设置或返回一个或多个样式属性。
JavaScript
<script>
var elements = Array.from(document.querySelectorAll(".out-of-stock-icon"));
for(var i=0; i < elements.length;i++) {
elements[i].parentNode.style.opacity = 0.5;
}
</script>
jQuery
<script>
$(".out-of-stock-icon").parent().css('opacity', 0.5);
</script>
TA贡献1797条经验 获得超4个赞
你需要的是jquery的parent()
函数。它为您提供层次结构中第一个匹配选择器的父级。所以,
$('product .out-of-stock-icon').parent('thumbnail').css('opacity', '0.8');
TA贡献1796条经验 获得超7个赞
您必须检查out-of-stock-icon产品内是否存在任何具有类别的项目。
$("product").each(function(){
if($(this).find(".out-of-stock-icon").length)
$(this).find("thumbnail").css("opacity", 0.2);
});
$("product").each(function(){
if($(this).find(".out-of-stock-icon").length)
$(this).find("thumbnail").css("opacity", 0.2);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<product id="product-1">
<thumbnail>
Product 1
<img>
<!-- This product does not have the out-of-stock-icon -->
</thumbnail>
<detail></detail>
</product>
<product id="product-2">
<thumbnail>
Product 2
<img>
<span class="out-of-stock-icon"></span>
</thumbnail>
<detail></detail>
</product>
<product id="product-3">
<thumbnail>
Product 3
<img>
<span class="out-of-stock-icon"></span>
</thumbnail>
<detail></detail>
</product>
- 4 回答
- 0 关注
- 121 浏览
添加回答
举报