0

我有从 PHP 的 json_encode 解析的数组,如下所示:

[["1104", "1105", "1106", "1107"],[1, 2, 8, 9]]

我正在尝试生成与数组 set1 数量相关的 div (["1104", "1105", "1106", "1107"])

我想将数组 set2 作为 .innerHTML 放入其中

在 HTML 页面中,我有 4 次这样的潜水

<div id='1104'></div>
<div id='1105'></div>
<div id='1106'></div>
<div id='1107'></div>

我试过的是:

var str=xmlHttp.responseText;
var res=JSON.parse(str);

   var r = res[0]

   for (i in r){

     var diva = res[1]
    for (z in diva ){

   document.getElementById(r[i]).innerHTML=diva[z];

   }
    }

我无法将它们放入正确的位置。我应该怎么办 ?

4

3 回答 3

1

我认为应该这样做。您不需要嵌套循环,只需一个循环即可从两个数组中获取相应的元素。

var set1 = res[0], set2 = res[1];
for (var i = 0; i < set1.length; i++) {
    var div = document.getElementById(set1[i]);
    if (div) {
        div.innerHTML = set2[i];
    }
}

如果有 3 组:

var set1 = res[0], set2 = res[1], set3 = res[2];
for (var i = 0; i < set1.length; i++) {
    var div = document.getElementById(set1[i]);
    if (div) {
        div.innerHTML = set2[i] + set3[i];
    }
}
于 2013-09-07T16:05:51.307 回答
1

尝试这个:

var Ids = res[0];
var values = res[1];

for (var i=0, len = Ids.length; i<len; i++) {
    document.getElementById(Ids[i]).innerHTML = values[i];
}

jsFiddle

于 2013-09-07T16:05:52.280 回答
0

您的内部 for 循环会覆盖以前的值。

只需将内部循环替换为document.getElementById(r[i]).innerHTML=res[1].join(',');

于 2013-09-07T16:09:34.093 回答