В настоящее время я использую CSS, чтобы скрыть класс, если изображение «src» использует пустое изображение аватара:
<style>
.s-lib-featured-profile-image [src = "//libapps.s3.amazonaws.com/apps/common/images/profile.jpg"] {
display:none;
}
</style>
Однако мне также нужно создать условие (jQuery?, javascript?), которое будет скрывать весь div (class="s-lib-featured-profile-container"), когда приведенное выше верно.
<div class = "s-lib-featured-profile-container">
<a href = "/prf.php?account_id=127256">
<div class = "s-lib-featured-profile-image">
<img src = "https://libapps.s3.amazonaws.com/apps/common/images/profile.jpg" alt = "">
</div>
<div class = "s-lib-profile-div s-lib-featured-profile-name"></div>
</a>
</div>
В настоящее время я безуспешно реализую приведенный ниже сценарий.
<script type = "text/javascript">
$(document).ready(function() {
if ( $('.s-lib-featured-profile-image').text()=='' ) {
$('.s-lib-featured-profile-container').hide();
}
});
</script>



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Почему бы вам не сделать тот же запрос, что и ваш CSS?
$(document).ready(function() {
if ( $('.s-lib-featured-profile-image img[src = "https://libapps.s3.amazonaws.com/apps/common/images/profile.jpg"]').length ) {
console.info('hiding...');
$('.s-lib-featured-profile-container').hide();
}
});<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class = "s-lib-featured-profile-container">
<a href = "/prf.php?account_id=127256">
<div class = "s-lib-featured-profile-image">
<img src = "https://libapps.s3.amazonaws.com/apps/common/images/profile.jpg" alt = "">
</div>
<div class = "s-lib-profile-div s-lib-featured-profile-name"></div>
</a>
</div>Поскольку вы уже используете jQuery, быстрым решением будет использование .attr() (документы). Это может выглядеть примерно так:
if ($('.s-lib-featured-profile-image img').attr('src') === "//libapps.s3.amazonaws.com/apps/common/images/profile.jpg") {
//your custom logic here
}
Если вам нужно скрыть весь div, попробуйте использовать что-то вроде .addClass()(документы), чтобы добавить класс со свойством CSS display: none.
Вот простой фрагмент, показывающий, как вы могли бы действовать: выберите дочерний элемент при определенном условии, а затем скройте его родителя:
$('.hide-my-parent').each(function() {
$(this).parent('.parent-class').hide();
})<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class = "parent-class">
hide me!
<span class = "hide-my-parent">
hide my parent!
</span>
</div>
<div class = "parent-class">
don't hide me!
<span>
don't hide my parent!
</span>
</div>И, конечно же, полный, менее читаемый код, который вы могли бы использовать:
const defaultUrl = 'https://libapps.s3.amazonaws.com/apps/common/images/profile.jpg';
$(`.s-lib-featured-profile-image [src = "${defaultUrl}"]`)
.parent('div')
.parent('a')
.parent('.s-lib-featured-profile-container')
.hide()/* just a helper to show that the div has been hidden */
.s-lib-featured-profile-container {
border: solid;
}<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!-- will be hidden -->
<div class = "s-lib-featured-profile-container">
<a href = "/prf.php?account_id=127256">
<div class = "s-lib-featured-profile-image">
<img src = "https://libapps.s3.amazonaws.com/apps/common/images/profile.jpg" alt = "">
</div>
<div class = "s-lib-profile-div s-lib-featured-profile-name"></div>
</a>
</div>
<!-- will not be hidden -->
<div class = "s-lib-featured-profile-container">
<a href = "/prf.php?account_id=127256">
<div class = "s-lib-featured-profile-image">
<img src = "http://picsum.photos/100/100" alt = "">
</div>
<div class = "s-lib-profile-div s-lib-featured-profile-name"></div>
</a>
</div>