仅当图中的图像具有 class 时才向图中添加 class
Add a class to a figure only if a image within figure has a class
如果其中的图像具有 right
的 class,我如何将 class 添加到 figure
元素?,我只希望它在以下情况下执行图像的 class 为 right
。
$(function() {
if ($('img').hasClass('right')) {
$('figure').addClass('test');
}
});
这会向页面上的每个 figure
添加一个 class test
?
您可以使用:
$('img.right').closest('figure').addClass('test');
如果 figure
元素始终是直接父元素,您还可以使用:
$('img.right').parent('figure').addClass('test');
附带说明一下,您的示例不起作用的原因是您将 class test
添加到 all 使用 $('figure').addClass('test')
时的图形元素。
您需要获取元素的上下文,它看起来更像这样:
$('img.right').each(function(){
$(this).parent('figure').addClass('test');
});
避免 .each()
循环并使用其他建议之一。
您可以使用 :has
选择器:
$('figure:has(img.right)').addClass('test');
如果其中的图像具有 right
的 class,我如何将 class 添加到 figure
元素?,我只希望它在以下情况下执行图像的 class 为 right
。
$(function() {
if ($('img').hasClass('right')) {
$('figure').addClass('test');
}
});
这会向页面上的每个 figure
添加一个 class test
?
您可以使用:
$('img.right').closest('figure').addClass('test');
如果 figure
元素始终是直接父元素,您还可以使用:
$('img.right').parent('figure').addClass('test');
附带说明一下,您的示例不起作用的原因是您将 class test
添加到 all 使用 $('figure').addClass('test')
时的图形元素。
您需要获取元素的上下文,它看起来更像这样:
$('img.right').each(function(){
$(this).parent('figure').addClass('test');
});
避免 .each()
循环并使用其他建议之一。
您可以使用 :has
选择器:
$('figure:has(img.right)').addClass('test');