对于具有“ .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或类而言,什么也没做。
似乎什么也没发生
答案 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()
旁注
.hide()
代替.css("display", "none")