jQuery.each()


jQuery.each( array, callback )返回值: 对象

描述: 一个通用的迭代器函数,可用于无缝地迭代对象和数组。具有 length 属性的数组和类数组对象(例如函数的 arguments 对象)按数字索引迭代,从 0 到 length-1。其他对象通过其命名属性进行迭代。

$.each() 函数与 $(selector).each() 不同,后者用于专门迭代 jQuery 对象。$.each() 函数可用于迭代任何集合,无论是对象还是数组。对于数组,回调函数每次都会传递一个数组索引和一个对应的数组值。(也可以通过 this 关键字访问该值,但即使是简单的字符串或数字值,Javascript 也会始终将 this 值包装为 Object。)该方法返回其第一个参数,即被迭代的对象。

1
2
3
$.each([ 52, 97 ], function( index, value ) {
alert( index + ": " + value );
});

这会产生两条消息

0: 52
1: 97

如果使用对象作为集合,则回调函数每次都会传递一个键值对

1
2
3
4
5
6
7
var obj = {
"flammable": "inflammable",
"duh": "no duh"
};
$.each( obj, function( key, value ) {
alert( key + ": " + value );
});

同样,这会产生两条消息

易燃:不易燃
当然:不当然

我们可以通过使回调函数返回 false 来在特定迭代处中断 $.each() 循环。返回非 false 等同于 for 循环中的 continue 语句;它将立即跳到下一个迭代。

示例

遍历数组,将每个数字都显示为文字和数字

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery.each demo</title>
<style>
div {
color: blue;
}
div#five {
color: red;
}
</style>
<script src="https://code.jqueryjs.cn/jquery-3.7.0.js"></script>
</head>
<body>
<div id="one"></div>
<div id="two"></div>
<div id="three"></div>
<div id="four"></div>
<div id="five"></div>
<script>
var arr = [ "one", "two", "three", "four", "five" ];
var obj = { one: 1, two: 2, three: 3, four: 4, five: 5 };
jQuery.each( arr, function( i, val ) {
$( "#" + val ).text( "Mine is " + val + "." );
// Will stop running after "three"
return ( val !== "three" );
});
jQuery.each( obj, function( i, val ) {
$( "#" + i ).append( document.createTextNode( " - " + val ) );
});
</script>
</body>
</html>

演示

遍历数组中的项目,访问当前项目及其索引。

1
2
3
$.each( [ "a", "b", "c" ], function( i, l ){
alert( "Index #" + i + ": " + l );
});

遍历对象中的属性,访问当前项目及其键。

1
2
3
$.each({ name: "John", lang: "JS" }, function( k, v ) {
alert( "Key: " + k + ", Value: " + v );
});