на jQuery.parent() выберите несколько уровней вверх

у меня такая иерархия:

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

то, что я пытаюсь сделать, это выбрать родитель <search> на <input/> onFocus, но если я делаю это:

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

консоль показывает пустой массив. Есть ли чистый способ выбрать родителя более чем на один уровень выше? Единственный известный мне способ сделать это -.parent().parent("search"), который будет работать, но не очень чистый, и если бы я пытался выбрать Родительский 5 уровней, было бы просто ужасно.

2 ответов


попробовать .closest():

для каждого элемента в наборе получите первый элемент, соответствующий селектор путем испытания самого элемента и прохождения через него предки на дереве дома.

$(this).closest("search")

С документы:

The .родители и. методы parent () аналогичны, за исключением того, что последний перемещается только на один уровень вверх по дереву DOM.

попробуйте использовать .