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

时间:2015-01-03 19:30:55

标签: jquery if-statement

如果一个类在figure元素中有一个类right,我该如何向它添加一个类?如果一个图像的类为{{1},我只想要执行它}。

right

这会为页面上的每个$(function() { if ($('img').hasClass('right')) { $('figure').addClass('test'); } }); 添加一个课程test吗?

2 个答案:

答案 0 :(得分:5)

您可以使用:

$('img.right').closest('figure').addClass('test');

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

$('img.right').parent('figure').addClass('test');

作为旁注,您的示例无效的原因是您在使用{时将test类添加到 所有 数字元素{1}}。

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

$('figure').addClass('test')

避免使用$('img.right').each(function(){ $(this).parent('figure').addClass('test'); }); 循环并使用其他建议之一。

答案 1 :(得分:3)

您可以使用:has选择器:

$('figure:has(img.right)').addClass('test');