.each()
遍历jQuery对象,为每个匹配的元素执行一个函数。
<ul>
<li>foo</li>
<li>bar</li>
</ul>
$( "li" ).each(function( index ) {
console.log( index + ": " + $( this ).text() );
});
0: foo
1: bar
大多数返回jQuery对象的jQuery方法也会遍历jQuery集合中的元素集—这个过程称为隐式迭代。出现这种情况时,通常不需要显式地迭代.each()方法:
// each()方法在这里不是必要的:
$( "li" ).each(function() {
$( this ).addClass( "foo" );
});
//相反,更应该依赖于隐式迭代:
$( "li" ).addClass( "bar" );
要访问jQuery对象而不是常规的DOM元素,使用$(this)。
使用return false提前跳出.each()循环。
jQuery.each()
用于对对象和数组进行迭代。具有length属性的数组和类数组对象(如函数的arguments对象)由数值索引迭代,从0到length-1。其他对象通过它们的命名属性进行迭代。
$.each()函数与$(selector).each()不同,后者仅用于在jQuery对象上迭代。$.each()函数可用于遍历任何集合,无论是对象还是数组。对于数组,回调每次传递一个数组索引和对应的数组值。(也可以通过this关键字访问该值,但Javascript总是将该值包装为对象,即使它是一个简单的字符串或数字值。)该方法返回其第一个参数,即迭代的对象。
$.each([ 52, 97 ], function( index, value ) {
alert( index + ": " + value );
});
0: 52
1: 97
var obj = {
"flammable": "inflammable",
"duh": "no duh"
};
$.each( obj, function( key, value ) {
alert( key + ": " + value );
});
flammable: inflammable
duh: no duh