jquery - 使用 jQuery .closest() 遍历 DOM

标签 jquery jquery-selectors closest

我认为对于 .closest() 来说这会是一个简单的事情事实证明并非如此(或者也许我犯了一个愚蠢的错误)。

我想做的是访问 <label>来自 <div> 的元素与内部文本:I AM HERE :

<li>
    <label>I WANT TO ACCESS THIS ELEMENT</label>
    <div>...</div>
    <div>
        <input/>
        <input/>
        <input/>
        <div id="start">I AM HERE</div>
    </div>
</li>

我的第一个猜测是尝试这个:

$('#start').closest('label') 

但它不会返回任何内容。

最佳答案

.closest() 仅查找初始选择的祖先元素。您需要 .closest().siblings().children() 的组合:

//find closest parent `<li>` element and then find that element's child `<label>` element
$('#start').closest('li').children('label');

//find the closest parent `<div>` element and then find that element's sibling `<label>` element
$('#start').closest('div').siblings('label');

更新

一个非常快的选择器是使用 .prev() 两次和 .parent() ,如下所示:

$('#start').parent().prev().prev();

关于jquery - 使用 jQuery .closest() 遍历 DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9421425/

相关文章:

javascript - 查找不包含特定字符串的所有元素

javascript - 检测 div 在数组中的位置

jQuery 最接近();不工作

JavaScript如何找到包含字符串的最接近的类

javascript - 如何检查 Angular 6 中最接近的父类名?

jquery - 切换类中的双重操作

javascript - 所有 JQuery 突然停止工作

jquery - 使用 jquery 选择文档根目录

javascript - 如何打印 Vue.js 组件的 id

jQuery;正确选择脚本标签的内容