Jquery试图找到特定的父div

时间:2016-12-13 17:45:03

标签: javascript jquery html css

我有一个如下所示的列表:

<div class="col12">
  <div class="card-stacked">
    <div class="card-content">
      <a class="card-link" href=""></a>
    </div>
  </div>
</div>
--------------

<div class="col12">
  <div class="card-stacked">
    <div class="card-content">
      <a class="card-link" href=""></a>
    </div>
  </div>
</div>
--------------
<div class="col12">
  <div class="card-stacked">
    <div class="card-content">
      <a class="card-link" href=""></a>
    </div>
  </div>
</div>

我现在要做的是,当用户将鼠标悬停在卡片链接上时,为卡片叠加添加悬停效果,但唯一的问题是我不知道如何针对特定的div。我不想为所有div添加悬停效果,只是标签的父级

例如:

$('.card-link').hover(function() {
  $(this).$('.card-stackedl').addClass('hover');
}, function() {
  $(this).$('.card-stacked').removeClass('hover');
});

4 个答案:

答案 0 :(得分:2)

您可以使用jQuery方法 closest() parent()

$(this).closest('.card-stacked').addClass('hover');
//OR
$(this).parents('.card-stacked').addClass('hover');

希望这有帮助。

&#13;
&#13;
$('.card-link').hover(function() {
  $(this).closest('.card-stacked').addClass('hover');
}, function() {
  $(this).closest('.card-stacked').removeClass('hover');
});
&#13;
.hover{
  background-color: yellow;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="col12">
  <div class="card-stacked">
    <div class="card-content">
      <a class="card-link" href="">card-link</a>
    </div>
  </div>
</div>
--------------

<div class="col12">
  <div class="card-stacked">
    <div class="card-content">
      <a class="card-link" href="">card-link</a>
    </div>
  </div>
</div>
--------------
<div class="col12">
  <div class="card-stacked">
    <div class="card-content">
      <a class="card-link" href="">card-link</a>
    </div>
  </div>
</div>
--------------
&#13;
&#13;
&#13;

答案 1 :(得分:0)

我认为此文档应该为您提供帮助https://api.jquery.com/category/selectors/

答案 2 :(得分:0)

$('.card-link').hover(function() {
                $(this).parents('.card-stacked').addClass('hover');
            }, function() {
                $(this).$('.card-stacked').removeClass('hover');
            });

试试这个。

答案 3 :(得分:0)

您必须使用cell.zero_state()方法获取树中的特定父级。您也可以使用.closest()之类的:

&#13;
&#13;
.toggleClass()
&#13;
$('.card-link').hover(function(e) {
  $(this).closest('.card-stacked').toggleClass('hover', e.type === 'mouseenter');
});
&#13;
.hover {
  background: yellow;
}
&#13;
&#13;
&#13;