For ... in循环未按预期循环

时间:2019-09-09 03:59:21

标签: javascript html json

我正在使用for ... in循环获取json数据。循环有效,但只显示一组数据。

这是我正在使用的一段代码...

for (var prop in props) {
    document.querySelector(propSelects[prop]).innerHTML = list[i][prop];
};

这是整个功能:

lists.open('GET', 'js/data.json', true)
lists.onload = function() {
    var list = JSON.parse(this.response);
    for (var i = 0; i < 10; i++) {
        props = {
            titles: 'a.title',
            descs: '.desc',
        };
        for (prop in props) {
            document.querySelector(props[prop]).innerHTML = list[i][prop];
        };
    }
}lists.send();

它应该循环10次,但似乎只产生一组数据。我知道For ... in循环存在问题,但我似乎不知道该怎么办。顺便说一下,我是新手。谢谢。

1 个答案:

答案 0 :(得分:0)

您需要在html中添加data属性,以便您的选择器选择正确的DOM元素。调用document.querySelector(props[prop]).innerHTML时,您总是在修改相同的元素,这是第一个元素,因此您的html需要像data-index这样的属性,然后您也可以对其进行查询。

或使用innerHTML += ...