2017-01-19 5 views
1

HTML:Найти родителя по классу

<div id="aaa" class="p"> 
    <div id = "bbb"> 
     <div id="actor" onclick = "testParent(this)"> 
      test parent 
     </div> 
    </div> 
</div> 

JS:

testParent = function(obj){ 
    alert($(obj).parent(".p").id); 
} 

Я думаю, что это должно быть оповещение aaa, но это не делает.

Разве это не способ найти родителя по классу?

Редактировать Я знаю, что ближайший может это сделать, но более конкретно, он является родителем, не так ли? Итак, для jquery нет конкретной реализации для jQuery?

Here is fiddle

+2

[.closest (".p")] (https://api.jquery.com/closest/) – Itay

+0

Что вы подразумеваете под _there, нет конкретной реализации из jquery для этого_? '.p' является предком не сразу ['.parent()'] (https://api.jquery.com/parent/), вы также можете использовать '.parents()', но '.closest()' лучше – Satpal

ответ

1

Try:

testParent = function(obj){ 
alert($(obj).parents('.p').attr('id')); 
} 

Это довольно простой и короткий код.

+0

Это ответ Я ожидал. Все остальные предложили «ближайший», что верно, но «родители» более конкретны, поскольку я обращаюсь к «parent» для элемента. Благодарю. – Imad

0

Вы должны использовать .closest() и использовать obj без $()

Это должно быть так:

alert(obj.closest(".p").id); 

testParent = function(obj) { 
 
    alert(obj.closest(".p").id); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<div id="aaa" class="p"> 
 
    <div id="bbb"> 
 
    <div id="actor" onclick="testParent(this)"> 
 
     test parent 
 
    </div> 
 
    </div> 
 
</div>

0

попробовать этот код

JAVASCRIPT-

testParent = function(obj){ 
alert($(obj).closest(".p").attr('id')); 
} 
0

использования нужно использовать parents() будет найти соответствие родителей с class.p и attr() получит вам идентификатор совпавшей родителя. См. Ниже код.

testParent = function(obj){ 
 
    alert($(obj).parents(".p").attr("id")); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="aaa" class="p"> 
 
    <div id = "bbb"> 
 
     <div id="actor" onclick = "testParent(this)"> 
 
      test parent 
 
     </div> 
 
    </div> 
 
</div>