visible
是一个伪选择器,所以它是
.is(':visible')
你也可以像这样使用它
$(this).find('.container span img:visible')
编辑
嘿,等等,你是说它可能根本不包含图像吗?在这种情况下,您不想检查可见性,而是要检查类似
$(this).find('.container span img').length > 0
(当然,如果可能有图像,并且它们可能被隐藏,您需要检查 的长度img:visible
)
编辑 2
现在您可以检查是否有可见图像。其余的取决于您的实施。我假设从使用中$(this)
可以搜索到某种类型的 DOM 节点,.container
每个this
.
如果不是这种情况——如果你想一次性查看所有的 DOM——你可以这样做:
$('.container span img:visible').each(function() {
$(this).closest('span').css('border', '10px');
});
上面,您是说“对于 a 内跨度内的所有可见图像.container
,为其父跨度添加边框。
另一种方法是这样的:
$('.container span').filter(function() { return $(this).find('img:visible').length > 0; }).css('border', '10px');