javascript - 为什么js中forEach不断递增?但在控制台看起来很完美。

标签 javascript json twitter-bootstrap

我想开发一个简单的联系人列表应用程序。使用静态 json、ajax 请求并使用 js 和 bootstrap。我想让每一行的左侧都有个人资料图片,旁边有一个名字。每个名字和图片都来自 json.相反,会发生以下情况:第一行​​正常,但第二行包含双倍,第三行包含三倍,第四行包含四倍名称和图片。

有什么问题吗?奖励:如何按字母顺序对姓名进行排序? .sort() 不适合我。

JS代码:

var profiles = document.getElementById('profiles');
var request = new XMLHttpRequest();
request.open('GET', 'data.json');
request.onload = function() {
  var contacts = JSON.parse(request.responseText);
  contacts.forEach(function(data){
    $('.pre-scrollable').prepend('<div class="row media"></div>');
    $('.media').prepend('<div class="media-body"></div>');
    $('.media').prepend('<div class="media-left"></div>');
    $('.media-left').prepend('<img class="media-object" style="width:60px">');
    $('.media-object').attr('src', data.picture);
    $('.media-body').prepend('<p>' + data.name + '</p>');
    console.log(data.name);
  });
};
request.send();

数据.json:

    [
      {
        "name": "Richard",
        "address": "Cell",
        "mobile": "687 30 79",
        "picture": "1.jpg"
      },
      {
        "name": "Daniel",
        "address": "Sarvar",
        "mobile": "616 58 42",
        "picture": "2.jpg"
      },
      {
        "name": "Adam",
        "address": "Budapest",
        "mobile": "178 24 98",
        "picture": "3.jpg"
      },
      {
        "name": "Brad",
        "address": "Szeged",
        "mobile": "812 25 66",
        "picture": "4.jpg"
      }
    ]

最佳答案

你的问题很简单:

当你这样做

$('.media')

您询问“选择所有具有媒体 CSS 类的应答器” 因此选择器将选择所有媒体(甚至是您之前在 js 脚本中添加的媒体,因此对于第一个循环来说可以,但其他循环则不行)

要恢复在 forEach 中执行的操作:

//第一次 - 选择可预滚动应答器 -> 确定

  • 添加一个 .media(因此文档中有一个 .media)

  • 选择 .media(选择 1 个应答器)

  • ...

//第二次 - 选择可预滚动应答器 -> 确定

  • 添加一个.media(因此文档中有两个.media)

  • 选择 .media(已选择 2 个应答器)

  • ...

...

关于javascript - 为什么js中forEach不断递增?但在控制台看起来很完美。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48034621/

相关文章:

json - 使用 PowerShell 如何在具有注释的 json 文件中替换和保存值

python - Django 测试时未找到 Postgres 函数 json_array_elements

javascript - 为什么我无法使用 GetElementById 查找页面上的元素?

javascript - "style-src ' self ' https://maxcdn.bootstrapcdn.com/bootstrap/"。 'unsafe-inline' 关键字,哈希

javascript - Angular 垫输入

javascript - 图表 js 图表条形图不显示从 0 开始的数据

twitter-bootstrap - Bootstrap 中布局类的完整列表?

javascript - Bootstrap Vue - 更改下拉背景

html - 折叠的 Bootstrap 3 导航栏超出范围(下拉菜单)

javascript - Angular ng-options 使用选项数据源预选择一个值