javascript - 在 Javascript 数组中引用变量

标签 javascript html arrays variables

简单版本: 我有一个引用页面元素的数组列表,如下所示:

var listOfArrays = ["header", "middle", "footer"];

每个数组都像这样:

var header = ["red", "blue", "green"];
var middle = ["carrot", "cucumber", "asparagus"];
var footer = ["earth", "air", "water"];

我希望能够通过运行数组来动态替换页面元素的 HTML,如下所示:

for(i=0; i<listOfArrays.length; i++) {
    document.getElementById(listOfArrays[i]).innerHTML({listOfArrays[i]}[cycleNumber]);
} 

我想要的输出是将三个元素分别更改为“红色”、“胡萝卜”和“地球”(至少在第一个周期中,这是我所关心的)。 我应该如何编码?

Here是一个 jsfiddle,其中包含我正在尝试做的事情的模型。

最佳答案

一种解决方案是创建一个包含其他数组的附加数组:

var IDs = ["header", "middle", "footer"];

var parts = [
    ["red", "blue", "green"],
    ["carrot", "cucumber", "asparagus"],
    ["earth", "air", "water"]
];

for (var i=0; i < IDs.length; i++) {
    document.getElementById(IDs[i]).innerHTML = parts[i][cycleNumber];
} 

现在,缺点是它不太可维护。如果您向 ID 添加新元素,则必须相应地重新排列 part

稍微好一点的解决方案是使用对象作为查找映射:

var IDs = ["header", "middle", "footer"];

var parts = {
    header: ["red", "blue", "green"],
    middle: ["carrot", "cucumber", "asparagus"],
    footer: ["earth", "air", "water"]
};

for (var i=0; i < IDs.length; i++) {
    var ID = IDs[i];
    document.getElementById(ID).innerHTML = parts[ID][cycleNumber];
} 

关于javascript - 在 Javascript 数组中引用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30270723/

相关文章:

javascript - Datatables Responsive in a flexbox hierarchy overflow in 最近的浏览器

javascript - 让 jQuery 将宽度设置为百分比而不是像素

javascript - 如何从另一种颜色中减去一种颜色

java - Java中返回数组的方法可以是私有(private)的吗?

javascript - Keyup 函数不适用于表单输入

javascript - 具有嵌套树的递归函数未在 'order' 中返回

javascript - 从具有重复值的数组创建对象

java - 反转 int 数组

javascript - 将 Div 滑出屏幕而不是淡入淡出

javascript - 推特 Bootstrap 选择菜单将其他元素推到下面