Javascript 如何更改当前页面上元素的可见性?

Javascript 如何更改当前页面上元素的可见性?,javascript,visibility,hidden,visible,Javascript,Visibility,Hidden,Visible,一些人目前正在为一个项目构建一个小界面,我被困在了一个点上。目前,我有一个函数setPage(),它将.current类设置为活动链接 <script type="text/javascript" src="activemenu.js"></script> </head> <html> <body> <div id="menu"> <ul> <li><a hre

一些人目前正在为一个项目构建一个小界面,我被困在了一个点上。目前,我有一个函数
setPage()
,它将
.current
类设置为活动链接

    <script type="text/javascript" src="activemenu.js"></script>
</head>

<html>
<body>
<div id="menu">
    <ul>
        <li><a href="index.html">List Item 1<p>1042</p></a></li>
        <li><a href="index2.html">List Item 2<p>1042</p></a></li>
        <li><a href="index3.html">List Item 3<p>1042</p></a></li>
        <li><a href="index4.html">List Item 4<p>1042</p></a></li>
    </ul>
    <script language="javascript">setPage()</script>
    <div id="newalbumtxt"><a href="#">Create new album</a></div>
</div>


</body>
</html>
但是。。。我想更改可见性a
,使其在当前页面时变为活动状态

    <script type="text/javascript" src="activemenu.js"></script>
</head>

<html>
<body>
<div id="menu">
    <ul>
        <li><a href="index.html">List Item 1<p>1042</p></a></li>
        <li><a href="index2.html">List Item 2<p>1042</p></a></li>
        <li><a href="index3.html">List Item 3<p>1042</p></a></li>
        <li><a href="index4.html">List Item 4<p>1042</p></a></li>
    </ul>
    <script language="javascript">setPage()</script>
    <div id="newalbumtxt"><a href="#">Create new album</a></div>
</div>


</body>
</html>
默认情况下,
在CSS中隐藏

    <script type="text/javascript" src="activemenu.js"></script>
</head>

<html>
<body>
<div id="menu">
    <ul>
        <li><a href="index.html">List Item 1<p>1042</p></a></li>
        <li><a href="index2.html">List Item 2<p>1042</p></a></li>
        <li><a href="index3.html">List Item 3<p>1042</p></a></li>
        <li><a href="index4.html">List Item 4<p>1042</p></a></li>
    </ul>
    <script language="javascript">setPage()</script>
    <div id="newalbumtxt"><a href="#">Create new album</a></div>
</div>


</body>
</html>
这是HTML(顺便说一句,索引:1,2,3,4…仅用于测试)

    <script type="text/javascript" src="activemenu.js"></script>
</head>

<html>
<body>
<div id="menu">
    <ul>
        <li><a href="index.html">List Item 1<p>1042</p></a></li>
        <li><a href="index2.html">List Item 2<p>1042</p></a></li>
        <li><a href="index3.html">List Item 3<p>1042</p></a></li>
        <li><a href="index4.html">List Item 4<p>1042</p></a></li>
    </ul>
    <script language="javascript">setPage()</script>
    <div id="newalbumtxt"><a href="#">Create new album</a></div>
</div>


</body>
</html>
试试这个CSS:

    <script type="text/javascript" src="activemenu.js"></script>
</head>

<html>
<body>
<div id="menu">
    <ul>
        <li><a href="index.html">List Item 1<p>1042</p></a></li>
        <li><a href="index2.html">List Item 2<p>1042</p></a></li>
        <li><a href="index3.html">List Item 3<p>1042</p></a></li>
        <li><a href="index4.html">List Item 4<p>1042</p></a></li>
    </ul>
    <script language="javascript">setPage()</script>
    <div id="newalbumtxt"><a href="#">Create new album</a></div>
</div>


</body>
</html>
a p {
  display: none;
}

a.current p {
  display: block;
}

您可以向元素添加另一个类或修改当前类以包含
显示
可见性
声明:

    <script type="text/javascript" src="activemenu.js"></script>
</head>

<html>
<body>
<div id="menu">
    <ul>
        <li><a href="index.html">List Item 1<p>1042</p></a></li>
        <li><a href="index2.html">List Item 2<p>1042</p></a></li>
        <li><a href="index3.html">List Item 3<p>1042</p></a></li>
        <li><a href="index4.html">List Item 4<p>1042</p></a></li>
    </ul>
    <script language="javascript">setPage()</script>
    <div id="newalbumtxt"><a href="#">Create new album</a></div>
</div>


</body>
</html>
a p
{
    display: none;
}

.current
{
    display: block;
}
或:

    <script type="text/javascript" src="activemenu.js"></script>
</head>

<html>
<body>
<div id="menu">
    <ul>
        <li><a href="index.html">List Item 1<p>1042</p></a></li>
        <li><a href="index2.html">List Item 2<p>1042</p></a></li>
        <li><a href="index3.html">List Item 3<p>1042</p></a></li>
        <li><a href="index4.html">List Item 4<p>1042</p></a></li>
    </ul>
    <script language="javascript">setPage()</script>
    <div id="newalbumtxt"><a href="#">Create new album</a></div>
</div>


</body>
</html>
display
更改元素的显示方式,它有多个值,例如
inline
inline block
block
table
table cell
等。当设置为
none
时,元素将不再渲染,它将占用的空间将再次释放

    <script type="text/javascript" src="activemenu.js"></script>
</head>

<html>
<body>
<div id="menu">
    <ul>
        <li><a href="index.html">List Item 1<p>1042</p></a></li>
        <li><a href="index2.html">List Item 2<p>1042</p></a></li>
        <li><a href="index3.html">List Item 3<p>1042</p></a></li>
        <li><a href="index4.html">List Item 4<p>1042</p></a></li>
    </ul>
    <script language="javascript">setPage()</script>
    <div id="newalbumtxt"><a href="#">Create new album</a></div>
</div>


</body>
</html>

可见性
只是更改元素是否可见,但与
显示
的主要区别在于元素占用的空间不会被回收,就像使用
位置:相对
一样

我找到了解决办法!非常简单:在CSS中只需更改格式:a.current p{visibility:visible;}
    <script type="text/javascript" src="activemenu.js"></script>
</head>

<html>
<body>
<div id="menu">
    <ul>
        <li><a href="index.html">List Item 1<p>1042</p></a></li>
        <li><a href="index2.html">List Item 2<p>1042</p></a></li>
        <li><a href="index3.html">List Item 3<p>1042</p></a></li>
        <li><a href="index4.html">List Item 4<p>1042</p></a></li>
    </ul>
    <script language="javascript">setPage()</script>
    <div id="newalbumtxt"><a href="#">Create new album</a></div>
</div>


</body>
</html>