如果图像的高度小于包含div的高度,我试图为图像添加一个类。但是,如果一个图像小于包含框,jQuery会将该类添加到所有图像。如何让jquery只将类添加到小于包含div的图像中?
我有jQuery的经验。这是我在jQuery中编写的第一个代码。
$('.expositie, .right img').each(function(){
if ($(".expositie").height() > $(".right img").height()) {
$(".right img").addClass("toggle");
}
});
答案 0 :(得分:7)
您也可以使用addClass函数参数,但有些人发现它的可读性较差:
$('.expositie').find('.right img').addClass(function(){
return $(this).closest(".expositie").height() > $(this).height() ? "toggle" : "";
});
答案 1 :(得分:1)
像这样:
$('.expositie, .right img').each(function(){
if ($(this).closest(".expositie").height() > $(this).height()) {
$(this).addClass("toggle");
}
});
closest
可让您找到验证给定选择器的第一个封闭元素。
你也可以使用filter
,我觉得更清楚:
$('.expositie, .right img').filter(function(){
return $(this).height()<$(this).closest(".expositie").height()
}).addClass("toggle");
编辑:我对你的意图有疑问。第一个选择器中应该有逗号吗?