2016-07-06 4 views
-1

Мне любопытно и не удалось найти что-либо в Интернете, но у меня есть строка кода, которая предназначена для родителя родителя родителя родителя.JQuery сокращает несколько родительских селекторов

который заканчивается таким образом: .parent().parent().parent().parent().

Мне было интересно, есть ли способ уменьшить это, вместо того, чтобы иметь 4, я мог бы просто установить повторяющегося родителя x раз.

UPDATE

Alot ответов ближайшие, спрашивая меня, чтобы использовать селектор. Я не собираюсь ориентироваться на конкретный селектор. Поэтому почему я использую несколько родителей.

Я ищу способ аббревиатуры нескольких манипуляторов.

+0

вы можете использовать '.closest()' вы можете делиться html-разметкой? – guradio

+1

Или 'jQuery.parents (SELECTOR)' – Rayon

ответ

0

Попробуйте с .EQ():

$('#element').parents().eq(2); 
+0

Извините, что Jayesh не работает. – DCdaz

0

Использование parents() с селектором, что вам нужно остановить:

alert($('.e').parents('.b').attr('id'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="a"> 
 
    <div class="b" id="thatsMe"> 
 
    <div class="c"> 
 
     <div class="d"> 
 
     <div class="e"> 
 
     </div> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>

0

Вы можете использовать .parents() с селектором как необязательный аргумент. Это будет проходить через весь DOM, а не подниматься на один уровень.

Подробнее здесь: https://api.jquery.com/parents/#parents-selector

0

Если родитель имеет идентификатор или класс, вы можете также использовать .closest()

console.log($("p:eq(0)").parent().parent().parent().html()); 
 

 
console.log($("p:eq(0)").closest("#1").html());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div id="1"> 
 
    <div id="2"> 
 
    <div id="3"> 
 
     <p>ME!</p> 
 
    </div> 
 
    </div> 
 
</div>

Смежные вопросы