代码之家  ›  专栏  ›  技术社区  ›  Gregory Ch

如何隐藏/显示匿名div而不影响其他div

  •  1
  • Gregory Ch  · 技术社区  · 10 年前

    我想隐藏一个匿名的子div,它也有一个子div。我还想通过单击div#child2来显示匿名div。

    我无权更改/添加/删除ID或类。

    所以我这样做了:

    <div id="parent">
    <!-- the anonymous div which I want to hide and display by clicking on div#child-2 -->
       <div> 
          <div id="Container1" >
             <div id="Container1">  
             <object>.....</object>
             </div>
          </div>
       </div>
       <div onclick="appear()" id="child-2">
          <div id="child-of-child"></div>
       </div>
    </div>
    

    CSS格式

    div#parent div:first-child {
    display: none;
    }
    

    Java脚本

    <script type="text/javascript">
    function appear() {
    document.getElementById("Container1").document.display="block !important";
    }
    </script>
    

    问题是这种类型的css影响了div#child和div#Container1,因为css引用了任何div的每个第一个子级。

    所以,我的第一个问题是:

    如何隐藏匿名div而不对另一个div产生任何影响,然后单击div#child-2来显示。

    第二: 在这种类型的javascript代码中,“block!important”的样式是如何工作的?

    第三: div#child2本身没有任何内容。它包含另一个包含内容的div。如果我在div#child2上设置一个事件 onclick="appear()"; 它有效吗?

    第四次: 如果无法避免对其他div的任何影响,有没有方法显示匿名div和div#Container1?

    1 回复  |  直到 10 年前
        1
  •  0
  •   benomatis    10 年前

    尝试此操作仅将第一个孩子隐藏在 #parent 分区:

    div#parent div:first-child div:first-child {
        display: none;
    }
    

    编辑

    制作 Container1 之后,在js中执行以下操作(注意:我删除了“!important”,因为我认为这是不允许的,删除它使代码正常工作-您可以在下面通过Fiddle链接尝试):

    function appear() {
        document.getElementById("Container1").style.display="block";
    }
    

    FIDDLER