首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jQuery将类添加到父div之外的元素中

使用jQuery将类添加到父div之外的元素中
EN

Stack Overflow用户
提问于 2017-03-29 19:48:22
回答 1查看 1.4K关注 0票数 3

我试图针对一个元素的特定父元素,然后使用jQuery向它添加一个类。示例:

代码语言:javascript
复制
$('.disable-link').click(function(e) {
  $(this).hide();
  $(this).parents('.item').find('.title').addClass('disabled');
  
  e.preventDefault();
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="item">
  <div class="title">Thing 1</div>
</div>
<div>
  <a class="disable-link" href="#">Click to Disable Thing 1</a>
</div>
<div class="item">
  <div class="title">Thing 2</div>
</div>
<div>
  <a class="disable-link" href="#">Click to Disable Thing 2</a>
</div>
<div class="item">
  <div class="title">Thing 3</div>
</div>
<div>
  <a class="disable-link" href="#">Click to Disable Thing 3</a>
</div>

我认为,通过使用.parents('.item'),它会一直沿着链向上延伸到带有this的特定item类,并针对该特定的类,但出于某种原因,它不是。

我尝试过使用parent().parent().find('.title'),但这最终会将disabled类添加到所有标题中,而不仅仅是其中的一个。我有一种感觉,它很简单,但我不能把我的头脑围绕在特定的继承上。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-29 19:50:13

.item的元素不是.disable-link元素的父元素,因此您应该首先针对父div,然后使用.prev()方法获得前一个.item,如下所示:

代码语言:javascript
复制
$('.disable-link').click(function(e) {
    $(this).hide();
    $(this).parents('div').prev('.item').find('.title').addClass('disabled');

    e.preventDefault();
});

希望这能有所帮助。

代码语言:javascript
复制
$('.disable-link').click(function(e) {
  e.preventDefault();
  
  $(this).hide();
  $(this).parents('div').prev('.item').find('.title').addClass('disabled');
});
代码语言:javascript
复制
.disabled{
   background-color: grey;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="item">
  <div class="title">Thing 1</div>
</div>
<div>
  <a class="disable-link" href="#">Click to Disable Thing 1</a>
</div>
<div class="item">
  <div class="title">Thing 2</div>
</div>
<div>
  <a class="disable-link" href="#">Click to Disable Thing 2</a>
</div>
<div class="item">
  <div class="title">Thing 3</div>
</div>
<div>
  <a class="disable-link" href="#">Click to Disable Thing 3</a>
</div>

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43102836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档