visible
- псевдо-селектор, поэтому
.is(':visible')
Вы также можете использовать его так
$(this).find('.container span img:visible')
EDIT
Эй, подождите, вы говорите, что он может не содержать изображение вообще? В этом случае вы не хотите проверять видимость, а скорее что-то вроде
$(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');
});
Выше вы говорите, что "для всех видимых изображений внутри пролета внутри .container
добавьте границу к их родительским промежуткам.
Другой способ сделать это будет примерно так:
$('.container span').filter(function() { return $(this).find('img:visible').length > 0; }).css('border', '10px');