我想循环一个每次运行时更改变量的函数,直到使用所有变量。目前,我将此函数复制了 20 多次,为每个函数更改了“a_week”。
var a_week = "yes";
var b_week = "no";
var c_week = "yes";
function onload() {
if a_week = "yes" {
document.getElementById("dot").classList.add('open');
}
else if a_week = "no" {
document.getElementById("dot").classList.add('closed');
}
}
我会制作一个你的周数组,让你的onload
函数接受一个参数,然后循环遍历它们。
const weeks = [true, false, false, true];
function onload(week) {
if(week) {
document.getElementById("dot").classList.add('open');
} else {
document.getElementById("dot").classList.add('closed');
}
}
weeks.forEach(onload);
你可以看一下的文档为forEach
在https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach。
对于每个不同的星期,您可能不打算每次都更改相同的 HTML 元素。上面的代码只是不断地向同一个#dot
元素添加类。如果您打算针对多个元素,可以保存一组元素或其选择器。或者将它与我的旧答案中的对象中的数据结合起来。您没有分享您的 HTML 结构,所以我不确定构建 DOM 操作的最佳方式是什么。
另外onload
是不是一个功能,因为它可以被假定为连接到浏览器的一个伟大的名字的onload事件。
似乎您应该制作任何sa_g_week
代表对象的东西,然后循环遍历它们的数组(或者如果需要通过键引用它们,则从它们中制作地图/对象)。我不确定您的上下文是什么,但我将编写一些字段名称并假设您正在处理位置。
const locations = [
{
isOpen247: true,
isPermanentlyClosed: false,
openTime: new Date(),
closeTime: new Date(),
},
{
isOpen247: true,
isPermanentlyClosed: true,
openTime: new Date(),
closeTime: new Date(),
},
];
然后您可以遍历数组并执行您需要的操作:
locations.forEach(location => {
if(location.isOpen247) {
// do stuff
} else {
// do other stuff
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句