仅当图中的图像具有类时才向图添加类

Ste*_*han 1 jquery if-statement

figure如果一个图像里面的图像有一个类right,我怎么能给一个元素添加一个类,如果一个图像有一个类,我只想要执行它right.

$(function() {
if ($('img').hasClass('right')) {
  $('figure').addClass('test');
 }
 });
Run Code Online (Sandbox Code Playgroud)

这会在页面上test为每个类添加一个类figure吗?

Jos*_*ier 5

你可以使用:

$('img.right').closest('figure').addClass('test');
Run Code Online (Sandbox Code Playgroud)

如果figure元素始终是直接父元素,您还可以使用:

$('img.right').parent('figure').addClass('test');
Run Code Online (Sandbox Code Playgroud)

作为旁注,您的示例不起作用的原因是因为您在使用时将类添加test所有图形元素$('figure').addClass('test').

你需要得到元素的上下文,它看起来更像是这样的:

$('img.right').each(function(){
    $(this).parent('figure').addClass('test');
});
Run Code Online (Sandbox Code Playgroud)

但是,避免.each()循环并使用其他建议之一.