这个想法是当这个特定的div是空的时候,我不想要显示伪元素。 (显然它将包含适当的逻辑)
我试过了
$('.my-feed--adventure').is(':parent')
$('.my-feed--adventure').children().length > 0
$('.my-feed--adventure:has(div)')
但这似乎还不够,我猜测这是因为伪元素充当了孩子,但是我无法瞄准他们,所以我有点卡住了。
欢迎任何想法。
编辑:
我应该补充一点,div没有样式,充当容器,因此隐藏div可以隐藏这个实例中的伪元素。问题旨在选择具有这些伪元素的空div。
答案 0 :(得分:1)
我实际上最终使用了上述两项努力的结合:
if ($('.my-feed--adventure:has(div)').length > 0) {
// do nothing
} else {
$('.my-feed--adventure').hide();
}
我在发布问题的过程中发现了这一点,但认为对于遇到同样问题的人来说这可能很有用。
答案 1 :(得分:1)
jQuery不能用于定位伪元素,因为它们不是DOM的一部分。删除它们而不影响包含元素的最简单方法是通过添加/删除类,如下所示:
#foo {
position: absolute;
width: 100px;
height: 100px;
}
#foo:before {
content: '';
width: 20px;
height: 20px;
background-color: #C00;
top: 0;
right: 0;
}
#foo.no-pseudo:before {
display: none;
}
if ($('.my-feed--adventure').is(':empty')) {
$(this).addClass('no-pseudo');
};
答案 2 :(得分:0)
您可以尝试使用空选择器
$('.my-feed--adventure:empty').hide();
这会隐藏.my-feed - 没有孩子的冒险。