2013-08-19 2 views
-1

у меня есть:Получение родительского класса из DIV, когда DIV оказывается

<div class="foo"> 
<div class="bar"> 
</div></div> 

Когда «бар» визуализируется, я хотел бы проверить, если «бар» в «Foo», и если это так , что такое имя класса.

Что не работает:

<div class="foo"> 
<div class="bar"> 
    <script type="text/javascript"> 
    $(this).load(function(){ 
     var parentClass= $(this).parent().attr('class'); 

    }); 
    </script> 
</div></div> 

Если "бар" в "Foo", я хочу, чтобы скрыть "бар", если нет, то вывести его, так что я бы:

if(parentClass.indexOf('foo') > -1) $(this).hide(); 

ответ

0

Если "бар" в "Foo", я хочу, чтобы скрыть "бар":

Просто цель любого детского .bar из .foo?

$('.foo .bar').hide(); 
0

Try:

$('.foo').each(function() { 
    if ($(this).find('div.bar').length) $(this).find('div.bar').hide(); 
}); 

jsFiddle example


Это может даже быть сделано без каких-либо JavaScript на всех (только CSS):

.foo .bar { 
    display:none; 
} 

jsFiddle example

0
<script type="text/javascript"> 
    $(this).load(function(){ 
     if($(this).parent().is('.foo')) 
     { 
     $(this).hide() 
     } 
    }); 
</script> 

BTW, нагрузка будет работать для изображений Я считаю,

0

div s не имеют события загрузки и, в любом случае, this есть (думаю) окно. Попробуйте выбрать все элементы .bar в готовом обработчике DOM и делать все, что вам нужно.

$(document).ready(function() { 
    $('.foo > .bar').hide(); 
}); 

http://jsfiddle.net/mSAMw/

0

Я думаю, ты путаешь document.ready с функцией нагрузки. Кроме того, здесь есть простой способ скрыть «бар», только если они находятся в пределах foo.

$(document).ready(function() { 

    if ($('.foo').find('.bar').length > 0) { 
     $('.bar').hide(); 
    } 

}); 
0

Попробуйте

if ($('.bar').parent().hasClass('foo')){  
$('.bar').hide(); 
} 

Demo

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