jquery $ .each()用于循环转换

时间:2014-08-28 09:31:03

标签: jquery loops

大家好,我是JS的新手,所以我的问题对你来说似乎微不足道。 我想重写$ .each()循环到for循环

这是我的代码:

  var students=[
  {
  "roll": 101,
  "name": "Ben",
  "emailId":"ben@gmail.com"
  },
  {
  "roll": 102,
  "name": "Ian",
  "emailId":"ian@gmail.com"
  },
  {
  "roll": 103,
  "name": "Caroline",
  "emailId":"carol@gmail.com"
  }
  ];
  $.each(students,function(i,v){
    $('p.listofstud').append(v.roll + " " + v.name + " " + v.emailId + "<br/>");
  }); 

当我重写它时,我得到[object Object]所有属性都在一行中(我更喜欢一行中的每三个属性)。

  for (var i=0,len=students.length;i<len;i++) {
    for (var property in students) {
        $('p.listofstud').append(students[property] + " ");
     } 
  }

你可以提前帮助我吗:)

1 个答案:

答案 0 :(得分:1)

在for循环中引用students数组时,您应该引用students[i],就像在追加参数列表中应该students[i][property]

一样
for (var i = 0, len = students.length; i < len; i++){
    for (var key in students[i]){
        $('p.listofstud').append(students[i][key] + " ");
    } 
    $('p.listofstud').append("<br/>");
}

在每个循环结束时,您需要添加一个换行符,因为这样可以为您提供所需的格式,让每个学生的参数分开。

原始in students表单的问题在于您试图获取学生数组中的键,而不是一个给定学生的数组。