Show more/Show less Toggle Button for Multiple Elements with Pure JavaScript [No jQuery](使用纯JavaScript为多个元素显示更多/更少切换按钮[无jQuery])
本文介绍了使用纯JavaScript为多个元素显示更多/更少切换按钮[无jQuery]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试创建一个小脚本,该脚本在单击按钮或链接后显示不同的隐藏HTML
项。
要求:
- 更改按钮文本:单击按钮后,将按钮文本从显示更多项切换到隐藏项。(反之亦然)
- 多个折叠:脚本必须使多个元素可见
- 很高兴拥有:
display: none
没有硬编码到源代码中,但位于样式表<style>display: none;</style>
- 没有jQuery或框架-纯粹的最低限度的轻量级JavaScript
脚本库:
我使用this Pure Javascript Show/Hide Toggle script作为基准并对其进行了修改。
我修改的代码片段:
数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">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
问题:
我的修改不显示隐藏项。我已经在这个问题上花了几个小时,但我没有让剧本发挥作用。如何在点击切换按钮时显示和隐藏多个元素?
推荐答案
您需要querySelectorAll
而不是querySelector
来检索和迭代多个元素。我建议使用.hidden
类,然后您可以迭代.hidden-item
,只需在每个:
const button = document.querySelector('.toggle-button');
const hiddenItems = document.querySelectorAll('.hidden-item');
let isHidden = true;
button.addEventListener('click', () => {
button.textContent = isHidden
? 'Hide items'
: 'Show more items';
isHidden = !isHidden;
hiddenItems.forEach(item => item.classList.toggle('hidden'));
});
.hidden {
display: none;
}
<div class="item">Item 1</div>
<div class="item">Item 2</div>
<div class="item hidden-item hidden">Item 3</div>
<div class="item hidden-item hidden">Item 4</div>
<div class="item hidden-item hidden">Item 5</div>
<button class="toggle-button">Show more items</button>
这篇关于使用纯JavaScript为多个元素显示更多/更少切换按钮[无jQuery]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:使用纯JavaScript为多个元素显示更多/更少切换按钮
基础教程推荐
猜你喜欢
- 自定义 XMLHttpRequest.prototype.open 2022-01-01
- 我可以在浏览器中与Babel一起使用ES模块,而不捆绑我的代码吗? 2022-01-01
- Chart.js 在线性图表上拖动点 2022-01-01
- 直接将值设置为滑块 2022-01-01
- html表格如何通过更改悬停边框来突出显示列? 2022-01-01
- 用于 Twitter 小部件宽度的 HTML/CSS 2022-01-01
- 如何使用JIT在顺风css中使用布局变体? 2022-01-01
- 如何使用TypeScrip将固定承诺数组中的项设置为可选 2022-01-01
- Electron 将 Node.js 和 Chromium 上下文结合起来意味着 2022-01-01
- Vue 3 – <过渡>渲染不能动画的非元素根节点 2022-01-01