我有下面的代码,我过去经常点击特定的按钮来显示或隐藏内容,它成功地工作了,但这不仅仅是我想要的,而且当一个内容显示时,我想要的也不可能是另一个打开,这意味着如果我显示其中一个内容并试图显示另一个内容,第二个内容将导致第一个内容显示自动崩溃,但我失败了,我怎么能做到呢。
我的代码
var coll = document.getElementsByClassName("colps");
for (let i = 0; i < coll.length; i++) {
coll[i].addEventListener("click", function() {
this.classList.toggle("active");
var content = this.nextElementSibling;
if (content.style.display === "block") {
content.style.display = "none";
coll[i].innerHTML = 'open';
} else {
content.style.display = "block";
coll[i].innerHTML = 'close';
}
});
}
.container {
width: 30%;
}
.colps {
background-color: lightblue;
color: #444;
cursor: pointer;
padding: 18px;
width: 100%;
border: none;
outline: none;
font-size: 15px;
}
.active,
.colps:hover {
background-color: dodgerblue;
}
.cont {
padding: 10px;
margin: 0;
display: none;
background-color: #f1f1f1;
}
<div class="container">
<button type="button" class="colps">open</button>
<p class="cont">Lorem ipsum dolor sit amet</p>
<button type="button" class="colps">open</button>
<p class="cont">Lorem ipsum dolor sit amet</p>
<button type="button" class="colps">open</button>
<p class="cont">Lorem ipsum dolor sit amet</p>
</div>
你可以试试下面的方法。我使用嵌套的forEach,当单击按钮时,我折叠了所有其他按钮。
js prettyprint-override">var coll = document.querySelectorAll(".colps");
coll.forEach(p => {
p.addEventListener("click", function(e) {
coll.forEach(p2 => {
p2.nextElementSibling.style.display = "none";
p2.innerHTML = 'open';
});
p.classList.toggle("active");
var content = p.nextElementSibling;
if (content.style.display === "block") {
content.style.display = "none";
p.innerHTML = 'open';
} else {
content.style.display = "block";
p.innerHTML = 'close';
}
});
});
.container {
width: 30%;
}
.colps {
background-color: lightblue;
color: #444;
cursor: pointer;
padding: 18px;
width: 100%;
border: none;
outline: none;
font-size: 15px;
}
.active,
.colps:hover {
background-color: dodgerblue;
}
.cont {
padding: 10px;
margin: 0;
display: none;
background-color: #f1f1f1;
}
<div class="container">
<button type="button" class="colps">open</button>
<p class="cont">Lorem ipsum dolor sit amet</p>
<button type="button" class="colps">open</button>
<p class="cont">Lorem ipsum dolor sit amet</p>
<button type="button" class="colps">open</button>
<p class="cont">Lorem ipsum dolor sit amet</p>
</div>
问题内容: 如果有人熟悉css和Material UI,对此将提供任何帮助。基本上,我试图实现一个Material UI Drawer组件,该组件在打开时不仅会滑出页面内容的顶部,而且页面内容会在抽屉周围保持一致,即挤压或扩展。我在项目中使用引导行和容器,但是我不知道如何使用它们来实现此目的。这是我的组件的布局方式: 请注意,“ top”属性仅是因为我希望在打开或关闭抽屉时,应用栏的顶部标题区域保
使用 oh-my-zsh 官网 http://ohmyz.sh/ 代码 https://github.com/robbyrussell/oh-my-zsh 安装步骤 先安装 zsh 安装 oh-my-zsh 以后环境变量在 ~/.zshrc 里 alias 俗称别名,是一个linux命令 举例:在git里面我们最常用的命令是查看状态,可以又太长 于是 vi ~/.zshrc 增加如下别名定义 al
我正在构建一个可折叠的工具栏并且运行良好,但不知道如何在没有更多数据显示时使其停止。无论如何总是崩溃。例如:如果没有数据要显示在回收器中,则工具栏的折叠应停止并防止进一步折叠 这是我的代码:
我试图在Tripadvisor中收集多家酒店的评论,我能够收集150个观察数据,其中包括来自30家酒店的150个评论数据。 但是,当我尝试添加hotel_name的新列并执行爬网时,hotel name不会再次出现,观察次数会减少到hotel的数量,即30。如何将酒店名称复制到每个审阅行? 这是我正在使用的代码:
要创建一个可折叠的区块,先创建一个容器,然后给容器添加data-role="collapsible"属性 容器内直接的标题(h1-h6)子结点,Jquery Mobile会将之表现为可点击的按钮,并在左侧添加一个“+"按钮,表示是可以展开的 在头部后面你可以添加任何想要折叠的html标记。框架会自动把这些标记包裹在一个容器里用以折叠或显 <div data-role="collapsible">
问题内容: 我有一些数据结构,我想将其中一个用作临时结构,将另一个用作非临时结构。 现在的问题当然是实际上只是指向,因此一旦清除,也是如此。 如何在使用Java时保留值? 问题答案: 您可以使用以下技巧: 或使用 您可以在此处获取有关clone()方法的一些信息 但是您应该记住,所有这些方式都会给您 List 的副本,而不是其所有元素。因此,如果您更改复制的列表中的元素之一,则它也将在原始列表中进