javascript - 如何使用 Jquery 选择具有特定类的父级的子级?

标签 javascript jquery html

我试图根据类(class)选择一个 child ,然后用它做事。我做不到。我只能使用索引来做到这一点,如下所示:

.children().eq([index])
<小时/>
<div class="container>
    <div class="row">
    <div class="col></div>
    </div>
    </div>

        <script>
    $(document).on('click','.col',(e)=>{
    parent = $(e.target).parent().parent()
    $(parent).children('.row').hide()

    })
    </script>

我无法做到这一点。

最佳答案

函数parent只会返回上一级的直系 parent 。您需要的是closest以避免必须链接父级调用:

$('.container').on('click', '.col', (e) => {
   $(e.target).closest('.container').children('.row').hide()
});

同样,children仅适用于直接子元素,适用于您需要的嵌套元素 find .

请注意,您的委托(delegate)元素是搜索的基本元素,因此您可以直接使用它,而不是遍历 dom:

$(e.delegateTarget).children('.row').hide()

$('.container').on('click', '.col', (e) => {
  $(e.delegateTarget).children('.row').hide()
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
  <div class="row">
    <div class="col">This will be hidden</div>
  </div>
  <div>
    <div class="col">This wont be hidden</div>
  </div>
  <div class="row">
    <div class="col">This will be hidden</div>
  </div>
</div>

关于javascript - 如何使用 Jquery 选择具有特定类的父级的子级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52806396/

相关文章:

javascript - 如何在集合中查找数组的存在?

javascript - 依次运行两个ajax请求(成功后才调用)

javascript - 单击提交按钮时类的 CSS 动画

javascript - JS : Submit or transfer input values to another HTML File?

javascript - 如何比较 vue.js 中的属性值

php - 通过 POST 将输入数组值发送到 php

javascript - 单击创建一个 DIV;然后通过单击删除相同的 DIV

javascript - 创建按钮以从输入中获取值并打开默认电子邮件客户端?

javascript - 为什么我的 css 显示不规则?

html - margin-left(以百分比设置)随着 Chrome 中的每个元素缩小(而不是在 Firefox 中)