jquery父级兄弟选择器后退两步

时间:2017-08-15 08:53:55

标签: javascript jquery

我正在尝试更改元素的类但似乎无法在此处获取它是我的HTML

<div class = "grand">
  <section class = 'minimized'>
     <div class = "div-1"> <button class = 'assign-show'></button> </div>
  </section>
  <section class = 'assignment'>
     <div class = "div-2"> <button class = 'assign-hide'></button> </div>
  </section>
</div>

我需要的是如果点击了assign-show,然后添加<section class = 'assignment'><section class = 'minimized'>

下面的

是我的jquery脚本

$('.assign-show').on('click',function(){
    $(this).closest('.minimized').addClass('hide'); 
    $(this).closest('.minimized').addClass('assignment-hide');
    $(this).parent('section').siblings('.assignment').removeClass('hide');
   $(this).parent('section').siblings('.assignment').removeClass('assignment-hide'); 
 });

上面的代码适用于addclass但是删除类不起作用。

1 个答案:

答案 0 :(得分:7)

您的问题是因为parent()仅在DOM树的一个级别上移动,但section距离.assign-show两级。要解决此问题,您可以使用parents()(注释,复数)或closest()。后者似乎更适合,因为它在第一次匹配时停止。

另请注意,您可以同时加入addClass()removeClass()来电。试试这个:

$('.assign-show').on('click', function() {
  $(this).closest('.minimized').addClass('hide assignment-hide');
  $(this).closest('section').siblings('.assignment').removeClass('hide ssignment-hide'); 
});