javascript - 如何获取数组中每个项目的最后一个元素子元素,然后在单击它们时显示它们
问题描述
因此,目前使用带有 onclick 的此代码,我可以打开子菜单项。
问题是当我单击其中一个项目以下拉菜单时,它们都打开了,但我只希望我单击的项目不打开所有菜单。
function myDropdown() {
var arr = Array.from(document.getElementsByClassName('sub-menu-wrap'));
for (let el of arr) {
var x = el.lastElementChild;
if (x.style.display === "none") {
x.style.display = "block";
} else {
x.style.display = "none";
}
}
}
如果您访问https://staging.information-age.com/并查看右侧带有图标的第三个菜单,这就是我正在处理的菜单,因此您可以更好地理解我的意思。
并且添加这个菜单是由 Wordpress 使用该wp_nav_menu
函数动态生成的。
希望有人能帮忙!
解决方案
onclick 处理程序应该类似于
let all = Array.from(document.getElementsByClassName('sub-menu-wrap'));
// current or "this" if you use onclick, 2 is the offset of the clicked menu item, just for testing
let current = all[2]; // change all[2] to this
for (let el of all) {
el.querySelector(".sub-menu").style.display = (el === current ? "block" : "none");
}
推荐阅读
- python - 尝试在熊猫中创建火花数据框时出错
- docker - Docker COPY 丢失了中间路径
- php - 尝试使用 unlink() 自行删除文件但没有成功
- python - 谁能建议最好的从英语或用英语写成的马拉地语到马拉地语的音译库?
- python - 我可以在同一个容器中运行 Flask 和 Neo4j 吗?
- c++ - Xcode clang 因未定义符号 _zgeev_ 而失败
- python - 使用特征缩放时预测的平均相对误差的差异
- x++ - 如何通过 Dynamics 365 FO 中的扩展取消按钮单击事件的超级调用?
- filter - mpu6050的卡尔曼滤波器F矩阵
- python - 多个.csv文件的连接在python上没有给出所需的结果