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