jQuery .parent()选择多个级别

时间:2014-04-09 22:05:57

标签: jquery parent

我有这样的层次结构:

<search>
    <inner>
        <input/>
        <p/>
        <img/>
    </inner>
</search>

我要做的是选择<search> onFocus的父<input/>,但如果我这样做:

$(function(){
    $("input").focus(function(){
        console.log($(this).parent("search"));
    });
});

控制台显示一个空数组。是否有一种干净的方式来选择多个级别的父级?我知道这样做的唯一方法是.parent().parent("search"),这可行,但不是很干净,如果我试图选择父级5层,那将是非常残酷的。

2 个答案:

答案 0 :(得分:25)

尝试.closest()

  

对于集合中的每个元素,获取与之匹配的第一个元素   选择器通过测试元素本身并遍历其中   DOM树中的祖先。

$(this).closest("search")

答案 1 :(得分:4)

来自the docs

  

.parents()和.parent()方法类似,只是后者只在DOM树上传递一个级别。

请尝试使用$.parents