我正在尝试更改元素的类但似乎无法在此处获取它是我的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但是删除类不起作用。
答案 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');
});