如何将一个类添加到父div?

时间:2019-03-21 13:33:33

标签: jquery class parent

我想根据活动URL显示活动菜单项。我有一个菜单,如以下HTML所示。我希望如果单击菜单项,则类active将被添加到.menu_mainitem元素中。

<div class='row' id='main-items'>
  <div class='menu_mainitem'>
    <a href='https://URL.com/index.php?cat=1' class='click-menu'>1</a>
  </div>
  <div class='menu_mainitem'>
    <a href='https://URL.com/index.php?cat=2' class='click-menu'>1</a>
  </div>
  <div class='menu_mainitem'>
    <a href='https://URL.com/index.php?cat=3' class='click-menu'>1</a>
  </div>
</div>
var current = $(location).attr('href');

$('#main-items a').each(function() {
  var $this = $(this);
  if ($this.attr('href').indexOf(current) !== -1) {
    $this.addClass('active'); 
  }
});

不幸的是,这将添加active.click-menu,但是我想将该类添加到.menu_mainitem。我该如何实现?

1 个答案:

答案 0 :(得分:2)

您可以使用parent()closest('.menu_mainitem')来获取所需的div。我更喜欢后者,它更健壮。

var current = $(location).attr('href');

$('#main-items a').each(function(e) {
  var $this = $(this);
  if ($this.attr('href').indexOf(current) !== -1) {
    $this.closest('.menu_mainitem').addClass('active');
  }
});

还要注意,您可以通过直接使用.menu_mainitem和功能来确定子元素{{1}的toggleClass()来选择href元素来使逻辑更加简洁}符合您的要求。

a