根据变量值附加不同的数据

时间:2014-09-29 00:07:52

标签: javascript foreach

我在页面上加载了2批json数据。我想根据loaddata等于添加一个不同的列表。

我该怎么做?

在console.log中myList等于myjson2但是当我尝试将myList.forEach(createList);放入时,我收到一个未定义的错误。

function createList(element, index, array) {
  var li = document.createElement("li");
  li.setAttribute("data-rank",index);
  li.appendChild(document.createTextNode(element['name']));
  ul.appendChild(li);
}

var ul = document.createElement("ul");
ul.setAttribute("id","test"); 
document.body.appendChild(ul);

var myjson1 = [{
    "name": "Tom",
    "rank": 1
},{
    "name": "Richard",
    "rank": 3
}];

var myjson2 = [{
    "name": "Kate",
    "rank": 1
},{
    "name": "Sarah",
    "rank": 3
}];

var loaddata=2;
var myList = "myjson" + loaddata;
console.log(myList);
//myList.forEach(createList); /* commented out as not working */
myjson1.forEach(createList); /* appends myjson1 list */
myjson2.forEach(createList); /* appends myjson2 list */

1 个答案:

答案 0 :(得分:1)

如果我理解你正在尝试做的是

var myList = this["myjson" + loaddata];

但是,为了工作,您需要在全局范围内声明var myjson