Javascript显示和隐藏
当我单击标题时,如何使其隐藏或显示列表?当其可见时,标题显示-当其不可见时,标题显示a+。非常感谢Javascript显示和隐藏,javascript,html,css,Javascript,Html,Css,当我单击标题时,如何使其隐藏或显示列表?当其可见时,标题显示-当其不可见时,标题显示a+。非常感谢 <div class="RevealCard"> <h3 class="RevealCard-header"> Top five loves </h3> <ol class="RevealCard-list"> <li>First item</li> <li>Second item<
<div class="RevealCard">
<h3 class="RevealCard-header">
Top five loves
</h3>
<ol class="RevealCard-list">
<li>First item</li>
<li>Second item</li>
<li>Third item</li>
<li>Fourth item</li>
<li>Fifth item</li>
</ol>
</div>
这应该做到:
函数单击下拉菜单(){
var listitems=document.getElementById(“RevealCard”);
var header=document.getElementById(“RevealCard header”).innerHTML;
如果(listitems.style.display==“无”){
listitems.style.display='block';
header=header.replace('+','-');
document.getElementById(“RevealCard标头”).innerHTML=标头;
}否则{
listitems.style.display='none';
header=header.replace('-','+');
document.getElementById(“RevealCard标头”).innerHTML=标头;
}
}
RevealCard标题{
背景:#000;
边界半径:4px4p0;
颜色:#fff;
字体大小:1.2米;
字体大小:正常;
保证金:0;
填充:0.5em;
位置:相对位置;
}
.RevealCard标头::之后{
边框:1px实心#fff;
内容:“-”;
高度:1.15em;
线高:1米;
位置:绝对位置;
右:0.5em;
文本对齐:居中;
宽度:1.15em;
}
.REVALCARD列表{
边框:1px实心#000;
边界顶部:无;
边际:0.02米0;
垫底:1米;
垫面:1米;
}
五大爱+
第一项
第二项
第三项
第四项
第五项
这应该可以做到:
函数单击下拉菜单(){
var listitems=document.getElementById(“RevealCard”);
var header=document.getElementById(“RevealCard header”).innerHTML;
如果(listitems.style.display==“无”){
listitems.style.display='block';
header=header.replace('+','-');
document.getElementById(“RevealCard标头”).innerHTML=标头;
}否则{
listitems.style.display='none';
header=header.replace('-','+');
document.getElementById(“RevealCard标头”).innerHTML=标头;
}
}
RevealCard标题{
背景:#000;
边界半径:4px4p0;
颜色:#fff;
字体大小:1.2米;
字体大小:正常;
保证金:0;
填充:0.5em;
位置:相对位置;
}
.RevealCard标头::之后{
边框:1px实心#fff;
内容:“-”;
高度:1.15em;
线高:1米;
位置:绝对位置;
右:0.5em;
文本对齐:居中;
宽度:1.15em;
}
.REVALCARD列表{
边框:1px实心#000;
边界顶部:无;
边际:0.02米0;
垫底:1米;
垫面:1米;
}
五大爱+
第一项
第二项
第三项
第四项
第五项
这里有一个可行的解决方案:
var header=document.getElementsByClassName('RevealCard-header')[0];
var list=document.getElementsByClassName('revalcard-list')[0];
var collapseChar=document.getElementById('collapseChar');
header.addEventListener('click',function(){
//单击时切换列表
if(list.style.display.toLowerCase()!=“无”){
//隐藏列表
list.style.display=“无”;
collapseChar.innerHTML=“&plus;”;
}
否则{
//显示列表
list.style.display=“block”;
collapseChar.innerHTML=“&减号;”;
}
})
RevealCard标题{
背景:#000;
边界半径:4px4p0;
颜色:#fff;
字体大小:1.2米;
字体大小:正常;
保证金:0;
填充:0.5em;
位置:相对位置;
}
.RevealCard标头::之后{
边框:1px实心#fff;
内容:“-”;
高度:1.15em;
线高:1米;
位置:绝对位置;
右:0.5em;
文本对齐:居中;
宽度:1.15em;
}
.REVALCARD列表{
边框:1px实心#000;
边界顶部:无;
边际:0.02米0;
垫底:1米;
垫面:1米;
}
#皱褶{
右边距:3倍;
}
&负的;五大爱
第一项
第二项
第三项
第四项
第五项
这里有一个可行的解决方案:
var header=document.getElementsByClassName('RevealCard-header')[0];
var list=document.getElementsByClassName('revalcard-list')[0];
var collapseChar=document.getElementById('collapseChar');
header.addEventListener('click',function(){
//单击时切换列表
if(list.style.display.toLowerCase()!=“无”){
//隐藏列表
list.style.display=“无”;
collapseChar.innerHTML=“&plus;”;
}
否则{
//显示列表
list.style.display=“block”;
collapseChar.innerHTML=“&减号;”;
}
})
RevealCard标题{
背景:#000;
边界半径:4px4p0;
颜色:#fff;
字体大小:1.2米;
字体大小:正常;
保证金:0;
填充:0.5em;
位置:相对位置;
}
.RevealCard标头::之后{
边框:1px实心#fff;
内容:“-”;
高度:1.15em;
线高:1米;
位置:绝对位置;
右:0.5em;
文本对齐:居中;
宽度:1.15em;
}
.REVALCARD列表{
边框:1px实心#000;
边界顶部:无;
边际:0.02米0;
垫底:1米;
垫面:1米;
}
#皱褶{
右边距:3倍;
}
&负的;五大爱
第一项
第二项
第三项
第四项
第五项
不仅要切换OL元素,还需要更改pseudo::after css。最简单的方法?创建第二个css::after样式,并简单地将它们两者切换。见下文
var myHead=document.getElementsByClassName(“RevealCard头”);
对于(变量i=0,j=myHead.length;iRevealCard-header {
background: #000;
border-radius: 4px 4px 0 0;
color: #fff;
font-size: 1.2em;
font-weight: normal;
margin: 0;
padding: 0.5em;
position: relative;
}
.RevealCard-header::after {
border: 1px solid #fff;
content: "-";
height: 1.15em;
line-height: 1em;
position: absolute;
right: 0.5em;
text-align: center;
width: 1.15em;
}
.RevealCard-list {
border: 1px solid #000;
border-top: none;
margin: 0 0 2em 0;
padding-bottom: 1em;
padding-top: 1em;
}