关于jquery:使用javascript迭代通过数组

Iterating thru an array using javascript for

本问题已经有最佳答案,请猛点这里访问。

如何在jquery中使用"for"迭代类似这样的数组。这一次我完全迷路了。我不知道如何从这样的数组中获取这些值,也无法更改数组的完成方式。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//Php
$errors['success']   = false;
$errors['#errOne']   ="Enter a valid username";
$errors['#errTwo']   ="Enter a valid email";
$errors['#errThree'] ="Enter a valid password";
echo json_encode($errors);//

dataType:"json",
cache:false,
success: function(data){
for (i=1; i<?; i++){//Start at 1
//I'm totally lost here.
//Output:"#errOne""Enter a valid username" ->Loop thru remaining messages
}  
},


可能你需要这个:

1
2
3
4
5
success: function(data){
    $.each(data, function(key, value) {
        alert(key + ': ' + value);
    });
}


因为您将数据作为参数传递,所以可以访问数据

尝试如下操作:

1
2
3
4
5
6
7
8
9
10
var $errors = {};
$errors['success']   = false;
$errors['#errOne']   ="Enter a valid username";
$errors['#errTwo']   ="Enter a valid email";
$errors['#errThree'] ="Enter a valid password";
    data : $errors;
    success: function(data){
    for (var i in data ){
       console.log(i + ':' + data[i]);
    }


如果您的PHP代码如下:

1
2
3
4
5
6
7
8
9
// Use $errors = array(...) if your PHP version is < 5.4
$errors = [
    'success' => false, // Why is 'success' part of the $errors array?
    'error_1' => 'Enter a valid username.',
    'error_2' => 'Enter a valid email.',
    'error_3' => 'Enter a valid password.'
];

print json_encode($errors);

,然后在JavaScript中,可以执行以下操作:

4

我很肯定这是最好的方法之一。如果我错了,请有人纠正我。


1
2
3
4
for (var key in data){
   alert(key); // gives keys  success, #errOne, #errTwo, #errThree
   alert(data[key]); // gives values  false, Enter a valid username, Enter a valid email, Enter a valid password
}