2015-07-14 8 views
0

У меня есть этот код ниже:Нахождение родителя с JQuery

<div class="as-mobile-item as-mobile-question"> 
    <label>Test</label> 
    <div> 
     <textarea name="as_items" class="form-control input-lg as-task-input as-section-ending" rows="3"></textarea> 
    </div> 
</div> 

Учитывая as-section-ending, чем селектор я могу использовать, чтобы получить самый высокий уровень div? Один с классами as-mobile-item as-mobile-question?

Я не могу использовать селектор для этих классов, потому что они существуют в другом месте. Мне особенно нужно получить div, где у этих классов есть ребенок as-section-ending.

Благодаря

+0

Что вы пробовали? –

+0

'.closest ('. As-mobile-item');' приходит на ум. –

+0

'.parent(). Parent()', но я предполагаю, что должен быть лучший способ. – b85411

ответ

2

Используйте .closest

Подобно этому

$(function() { 
 
    var $parentDivs = $(".as-section-ending").closest("div.as-mobile-item.as-mobile-question"); 
 
    alert($parentDivs.find("label").text()); // for example 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div class="as-mobile-item as-mobile-question"> 
 
    <label>elsewhere</label> 
 
</div> 
 
<div class="as-mobile-item as-mobile-question"> 
 
    <label>Test</label> 
 
    <div> 
 
    <textarea name="as_items" class="form-control input-lg as-task-input as-section-ending" rows="3"></textarea> 
 
    </div> 
 
</div>

+1

Спасибо. Это сработало. – b85411

0

Использование

var $div = $(".as-section-ending").closest(".as-mobile-item.as-mobile-question")

JQuery closest() API

0

использовать этот способ

$(".as-section-ending").parents().eq(1) 

После вызова родителей(), что ГИ ves Объекты, содержащие все родители до root html.

Пропустите номер индекса, который является родительским, и вы получите желаемый родительский элемент. номер индекс начинается с 0

0

Попробуйте это:

var $elem = $('.as-section-ending'); 
$elem.parents('div.as-mobile-item.as-mobile-question');