【发布时间】:2018-10-26 23:27:56
【问题描述】:
我正在尝试创建一个小脚本,在单击按钮或链接后显示不同的隐藏 HTML 项目。
要求:
- 更改按钮文本:单击按钮后,将按钮文本从显示更多项目切换为隐藏项目。 (反之亦然)
- 多次折叠:脚本必须使多个元素可见
- 很高兴拥有:
display: none未硬编码到源代码中,但位于样式表中<style>display: none;</style> - 没有 jQuery 或框架 - 纯最小的轻量级 JavaScript
脚本库:
我使用this Pure Javascript Show/Hide Toggle script作为基础并对其进行了修改。
我修改后的代码片段:
var button = document.querySelector('.toggle-button');
var menu = document.querySelector('.item');
button.addEventListener('click', function (event) {
if (menu.style.display == "") {
menu.style.display = "none";
button.innerHTML = "Show more items";
} else {
menu.style.display = "";
button.innerHTML = "Hide items";
}
}
);
<div class="item">Item 1</div>
<div class="item">Item 2</div>
<div class="item hidden-item" style="display: none;">Item 3</div>
<div class="item hidden-item" style="display: none;">Item 4</div>
<div class="item hidden-item" style="display: none;">Item 5</div>
<button class="toggle-button">Show more items</button>
代码笔:
https://codepen.io/anon/pen/ePxeVE
问题:
我的修改没有显示隐藏的项目。我已经在这个问题上花了几个小时,但我没有让脚本工作。 JavaScript 专业人士有什么想法如何在单击切换按钮时显示和隐藏多个元素?
【问题讨论】:
-
querySelector仅返回一个元素,您需要修改代码以使用getElementsByClassName然后循环该元素数组
标签: javascript toggle hide show show-hide