javascript – nearest()方法无法按预期工作

前端之家收集整理的这篇文章主要介绍了javascript – nearest()方法无法按预期工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在下面有一个示例,我不知道为什么第一个例子(使用div)没有得到文本,而第二个(使用span)可以使用 closest()使用相同的JS代码实现该文本:
$('.class-1').closest('div').find('.class-2').text()

第一个片段(使用div)无法使用nearest()获取文本:

console.log( $('.class-1').closest('div').find('.class-2').text() );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <div class="class-1">Div 1 Content</div>
  <div class="class-2">Div 2 Content</div>
</div>

第二个片段(使用span)使用nearest()获取文本:

console.log( $('.class-1').closest('div').find('.class-2').text() );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <span class="class-1">Div 1 Content</span>
  <br/>
  <span class="class-2">Div 2 Content</span>
</div>

我知道在这种情况下可以返回class-2文本的替代parent()/ parent()/ siblings()/ nextAll(),但我只想知道这种行为会发生什么.

解决方法

因为 .closest()检查调用元素是否也适合选择器,在你的情况下.class-1也是一个div.

来自文档:

Description: For each element in the set,get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.

猜你在找的JavaScript相关文章