使用类为每个div查找3rd Parent div,然后向其添加CSS

时间:2018-08-30 15:06:08

标签: javascript jquery

对于具有“ .protected_wrap”类的每个div,我需要上3级,然后向该div添加一个类或CSS。

我的代码

$( "div.protected_wrap" ).parents().eq(2).className( "hidephotos" )

$( "div.protected_wrap" ).parents().eq(2).css( "display", "none" );

第3个div是“ .photo_item_wrap”,但是就添加CSS或类而言,什么也没做。

似乎什么也没发生

1 个答案:

答案 0 :(得分:2)

您应该查看.closest()

通过测试元素本身并遍历DOM树中的祖先,它获得了与选择器匹配的第一个元素。

这应该可以解决问题:

$( "div.protected_wrap" ).closest('.photo_item_wrap').css( "display", "none" );

您也可以像使用.parents()一样使用,但是您需要像这样指定选择器

$( "div.protected_wrap" ).parents('.photo_item_wrap').css( "display", "none" );

.parents();就是这个东西,它将找到具有指定选择器的 all 个祖先。因此,如果该选择器具有多个父元素,建议您使用.closest()

旁注

  1. 您可以使用.hide()代替.css("display", "none")
  2. 要将类添加到元素,请使用.addClass()