我正在尝试根据班级选择一个孩子,然后再对其进行处理。我不能那样做。我只能用这样的索引来做到这一点:

.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仅返回上一级的直接父级。您需要的是closest,以避免必须链接parent调用:

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


同样,children仅适用于直接子代,对于嵌套元素则需要find

请注意,您的委托元素是搜索的基本元素,因此您可以直接使用它而不用遍历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/

10-16 19:38