所以让我说我有这篇文章的情节: 我左边有一张照片,图片后面有文章内容。 在内容区域我有一个预订按钮。 如果文章被保留,那么它将在照片底部显示一个小图像(透明书写“保留”)。 这些都已完成。
接下来我要做的是从文章中删除超级按钮“保留”(如果已保留)。应该是这样的:
所以它是这样的: 保留
<!-- reserved article -->
<div class="article">
<div class="image"></div>
<div class="image-reserved"><img src="reserved.jpg" /></div>
<div class="content">
<a href="#" class="reserveLink">Reserve</a>
</div>
</div>
<!-- reserved article //-->
<!-- unreserved article -->
<div class="article">
<div class="image"></div>
<div class="image-reserved"></div>
<div class="content">
<a href="#" class="reserveLink">Reserve</a>
</div>
</div>
<!-- unreserved article //-->
<!-- reserved article -->
<div class="article">
<div class="image"></div>
<div class="image-reserved"><img src="reserved.jpg" /></div>
<div class="content">
<a href="#" class="reserveLink">Reserve</a>
</div>
</div>
<!-- reserved article //-->
我尝试使用类似这样的jQuery:
if(!($('.image-reserved').find(img))) {
$('.reserveLink').addCSS('display', 'none');
}
但是我删除了所有“预约”链接......
我意识到我需要在找到元素'img'之后应该应用CSS属性的东西。 之后,它应该继续搜索并在必要时应用它。
我一整天都试图通过实现与上述示例类似的不同结构(使用find,has,next等)来找出摆脱这种情况的方法......但没有成功。
我作为最后的手段在这里张贴,我的希望完全失去了似乎很容易实现的东西......
重要提示:我知道结构看起来很奇怪,但我想要实现的内容可能非常困难,但我不允许修改任何已编写的代码。
答案 0 :(得分:0)
$('.image-reserved').next().hide()
答案 1 :(得分:0)
我建议:
$('.content').filter(function(){
return $(this).prev('div.image-reserved').find('img').length;
}).find('a').remove();
参考文献:
答案 2 :(得分:0)
你应该对每个保留的图像进行迭代:
// For each image reserved
$(".image-reserved").each(function(){
// Count the children
var count = $(this).children("img").length;
// If there's a child (The reserved img), then we delete the following links
if(count > 0){
$(this).next().children(".reserveLink").hide();
}
});
答案 3 :(得分:0)
$('div.image-reserved:not(:empty)+.content a.reserveLink')
会找到包含内容的所有.image-reserved
div,然后选择.reserveLink
元素中的.content
个链接。