【发布时间】:2021-07-01 10:05:40
【问题描述】:
我目前正在开发一款允许您选择食材并显示完整营养数据的餐厅应用。我将有大约 20 种成分。
有什么办法可以缩短?
function displayImage(image) {
let display = document.querySelector(".display-ingredient")
switch (image) {
case "lamb":
display.src = "images/" + image + ".png";
lambObj.clicked = !lambObj.clicked
if (lambObj.clicked === true) {
meal.push(lambObj);
} else {
//unfinished code here
}
break;
case "steak"....
}
}
【问题讨论】:
-
是的,将您的列表存储在数组或映射中...
-
如果您基于使用适当的复选框在此处构建 UI,您可能不必跳过诸如
lambObj.clicked = !lambObj.clicked、if (lambObj.clicked === true) { … }之类的圈套。 (您仍然可以使用图像作为标签来切换复选框。)此外,基本的可访问性可能会更好。 -
@CBroe 嗯..实际上可能会这样做。而不是在另一个 div 中显示图像,只需在悬停时显示营养不透明度。谢谢你的提示!这是我的第一个合适的项目,所以我不会想到这些简单的事情。
标签: javascript switch-statement