2013-08-19 18 views
-1

我:獲取父類的一個div當DIV呈現

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

當「酒吧」被渲染,我想檢查是否「酒吧」是「富」,如果是這樣,類名是什麼。

什麼不工作:

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

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

如果 「酒吧」 是 「福」,我想隱藏 「酒吧」,如果沒有,顯示它,所以我會:

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

回答

0

如果 「酒吧」 是 「福」,我想隱藏 「欄」:

只是針對包含.foo的任何兒童的.bar?

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

嘗試:

$('.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是(我認爲)窗口。嘗試在DOM準備好的處理程序中選擇所有.bar元素,然後執行您所需的任何操作。

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

http://jsfiddle.net/mSAMw/

0

我想你混淆的document.ready與負載的功能。而且,這只是一種隱藏「酒吧」的簡單方法,只有當它們在富人內時纔是。

$(document).ready(function() { 

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

}); 
0

嘗試

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

Demo