如何使用jQuery循环数组?

时间:2014-05-07 06:22:35

标签: jquery arrays

我有一个数组如下:

var data = new Array();
if(j==1){
  data['name']=$('input:text[name=full_name]').val();
  data['email']=$('input:text[name=email]').val();
  data['password']=$('input:password[name=password]').val();
  data[' ']=$('input:password[name=retype_password]').val();
}

我想循环使用这个数组,如下所示:

$.each(data,function(index,value){
  alert(index + ": " + value ); 

});

但是没有出现证明的警告框。$ each()不起作用。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

你所拥有的是一个对象(键值对),而不是使用索引存储对象的Array

因此,您需要创建data作为对象,而不是数组

var data = {};

演示:Fiddle

答案 1 :(得分:1)

使用对象而不是数组

var data = {};
if (j==1) {
    data['name']=$('input:text[name=full_name]').val();
    data['email']=$('input:text[name=email]').val();
    data['password']=$('input:password[name=password]').val();
    data[' ']=$('input:password[name=retype_password]').val();
}

$.each(data, function(i, v) {
    alert(i, v);
});

数组将索引映射到值,而不是值的键,即:

var A = [];
A.push('John');
A.push('Mike');
A.push('Sally');
console.log(A[1]); // prints Mike

答案 2 :(得分:0)

试试这种方式

var j =1;
var data = {};

if (j == 1) {
  data['name'] = 'Rachit';
  data['email'] = 'patelrachith@gmail.com';
  data['password'] = 'rachit';
  data[' '] = 3;
}

$.each(data, function (index) {
 alert(index + " : " + data[index] );
});

http://jsfiddle.net/patelrachith/FZy3b/1/