2014-02-11 3 views
2

Просто интересно, если ДИВ фактически наследует свойства от его родительского DIV, например,ли Div наследует родителей свойства по умолчанию

<div id = "pDiv" style="display:none;"> 
    <div id = "cDiv" style="display:none;"> 
     <h2> Abc</h2> 
    </div> 
</div> 

, когда я проверить alert($("#cDiv").css('visibility')) я получить результат, как «Visible», мммм, но в реале он скрыт ..

Как я могу проверить, действительно ли дочерний div отображается на экране или нет.

+2

Проверка с помощью:. '$ ('# cDiv') является (': видимый') 'BTW, свойство visibility' и' display' одно не то же самое –

+1

'видимость' и' display' не связаны, установка одного на что-то не изменит другого. – techfoobar

ответ

2

Попробуйте не проверять бананы в ожидании картофеля!

alert($("#cDiv").css('visibility')) 

возвращает вас css собственности visibility который являетсяvisible по умолчанию, и вы должны искать display собственности.

alert($("#cDiv").css('display')) 

Или, если вы хотите проверить реальногоvisibility, просто запустите:

alert($("#cDiv").is(':visible')) 
1

попробовать это:

$('#cDiv').is(':visible') 

или

$("#cDiv:visible") 
+0

Я предполагаю, что для проверки цели вы имеете в виду для второго: '$ (" #cDiv: visible ") .length' –

+0

Да, он вернет true/false, что может служить той же цели, что и для .is (': видимый ") – Janak

1

You необходимо использовать блок или встроенный блок в качестве дисплея, но не виден для видимости:

<div id = "pDiv" style="display:none;"> 
    <div id = "cDiv" style="visibility:visible;"> <!--will hidden as it's parent is hidden--> 
     <h2> Abc</h2> 
    </div> 
</div> 


<div id = "pDiv" style="display:none;"> 
    <div id = "cDiv" style="display:block;"> <!--will now show the div--> 
     <h2> Abc</h2> 
    </div> 
</div> 

Таким образом, это работает alert($("#cDiv").css('display'));

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