Zak*_*rki 6 html javascript jquery parent closest
我在下面有一个示例,我不知道为什么第一个例子(使用div's)没有得到文本,而第二个(使用span's)可以使用相同的JS代码实现它closest():
$('.class-1').closest('div').find('.class-2').text()
Run Code Online (Sandbox Code Playgroud)
第一个片段(使用div's)无法使用closest()以下内容获取文本:
console.log( $('.class-1').closest('div').find('.class-2').text() );Run Code Online (Sandbox Code Playgroud)
<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>Run Code Online (Sandbox Code Playgroud)
第二个片段(使用span's)获取文本closest():
console.log( $('.class-1').closest('div').find('.class-2').text() );Run Code Online (Sandbox Code Playgroud)
<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>Run Code Online (Sandbox Code Playgroud)
我知道在这种情况下parents()/parent()/siblings()/nextAll()可以返回class-2文本的替代方法,但我只想知道这种行为会发生什么.
Ori*_*ori 12
因为.closest()检查调用元素是否也适合选择器,在你的情况下.class-1也是一个div.
来自文档:
描述:对于集合中的每个元素,通过测试元素本身并遍历DOM树中的祖先来获取与选择器匹配的第一个元素.