javascript - 如何在一个函数中组合多个显示分配
问题描述
这里没有经验的开发人员。现在,我的函数showTeal()
更改了两个变量的显示属性,并确保其余变量保持设置为display = "none";
以确保在函数运行时仅显示某些变量。它有效,但我知道必须有更短的方法来做到这一点。对笔的其他方面的任何建议也非常感谢。
这是笔:https ://codepen.io/aubreywarpool/pen/LwxNyG
function showTeal(){
tealtray.style.display = "inline";
tealroller.style.display = "inline";
bg.style.animation = "tealbg 4s";
pinkroller.style.display = "none";
skyroller.style.display = "none";
blueroller.style.display = "none";
pinktray.style.display = "none";
skytray.style.display = "none";
bluetray.style.display = "none";
}
解决方案
更好的解决方案是按类对事物进行分组以将它们作为一个组访问。如果您分别在 IMG 标签中添加“托盘”和“滚筒”类,则可以通过查询选择器访问它们
let rollers=document.querySelectorAll(".roller");
let trays=document.querySelectorAll(".tray");
然后你可以修改整个组:
function showTeal(){
rollers.forEach( roller => roller.style.display = "none");
trays.forEach( tray => tray.style.display = "none");
tealtray.style.display = "inline";
tealroller.style.display = "inline";
bg.style.animation = "tealbg 4s";
}
或者,您可以使用 JS 库(例如 jQuery)来简化这些类型的选择器和属性操作。例如,使用 jQuery,您无需提前创建组,您可以一次选择多个查询:
function showTeal() {
$(".rollers, .trays").hide();
$("#tealtray, #tealroller").show();
bg.style.animation = "tealbg 4s";
}
推荐阅读
- c# - DateTime.Compare() 在相同的 DateTimes 上返回 1
- amazon-web-services - 如何在运行 lambda 函数时从 s3 安装软件包
- python - 在列表中搜索未知项目并附加到变量
- python - 什么是实现共享队列的最佳方法,工作人员推送数据并掌握在 Python 中有效地获取批处理数据?
- error-handling - SSIS foreach循环,根据处理过程中的任何错误将每个文件移动到文件夹完成或错误
- opengl - 如何从评估器(由 glEvalPoint1 创建)获取顶点信息(X,Y)
- excel - 重命名现有的已关闭文件但“名称”方法显示错误
- android - 如何直接从 Wear OS 获取睡眠数据?
- javafx - 为什么我的 JavaFX PerspectiveCamera 围绕一个看似任意的点旋转?
- php - 如何使用 xpath 选择两个属性相等的节点?