javascript - 如何根据一类嵌套元素更改父 div
问题描述
我想根据图像的宽度调整我的图像幻灯片容器,因此只有当高度大于宽度时才会进行调整,这就是我目前所拥有的:
jQuery(document).ready(function($) {
var imgs = $('.swiper-slide-image');
imgs.each(function() {
var img = $(this);
var width = img.width();
var height = img.height();
if (width < height) {
img.addClass('portrait');
} else {
img.addClass('landscape');
}
})
});
这很好用,只要高度大于宽度,我就会得到“肖像”类。
我只想在“肖像”类存在时执行更改。html 看起来像这样:
<div class="swiper-slide">
<figure class="swiper-slide-inner">
<img class="swiper-slide-image portrait" />
</figure>
</div>
我需要定位div.swiper-slide
- 我只需要向它添加特殊类。
我试过以下:
jQuery(document).ready(function($) {
$('.swiper-slide-image').each(function() {
var imgs = $('.swiper-slide-image');
if ((img).hasClass("portrait")) {
(this).parents('.swiper-slide').addClass('special-one');
}
})
});
但没有结果:/
将不胜感激任何帮助!
非常感谢
解决方案
您忘记了$
两次,并且还在img
jQuery 选择器中添加了引号:
jQuery(document).ready(function($) {
$('.swiper-slide-image').each(function() {
var imgs = $('.swiper-slide-image');
if ($('img').hasClass("portrait")) {
$(this).parents('.swiper-slide').addClass('special-one');
}
})
});
.special-one {
border: 5px solid red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="swiper-slide">
<figure class="swiper-slide-inner">
<img class="swiper-slide-image portrait" / src="https://placehold.it/300x200/b9a">
</figure>
</div>
推荐阅读
- php - 如何使用 PHP 使全文搜索更准确
- asp.net-core-mvc - 如何在 aspnetboilerplate 动态 web api 中启用压缩
- java - 高于 Java 8 的版本的编译器警报/警告
- python - 使用python修改json文件
- java - 需要为 spring boot 项目更新 swagger UI Path
- elasticsearch - 嵌套聚合:如何获取聚合对象的属性
- c# - 无法从用法中推断出方法的类型参数。C#
- apache-spark - Spark 执行器驱动程序未知主机问题
- css - 基础 scss 文件未在我的反应项目的 App.scss 文件中导入
- android - 文字转语音重启