ç±äºjQueryçeachæ¯éè¿å¾ªç¯è°ç¨åè°å½æ°çæ¹å¼å®ç°çï¼æ以å¨å½æ°å
åçbreakåªéç¨äºå½æ°å
é¨çé»è¾ï¼å¹¶ä¸è½å¯¹å½æ°å¤å±ç循ç¯èµ·å°ä½ç¨ï¼æ以breakä¸ç®¡ç¨ãå
·ä½å¯ä»¥åæä¸ä¸jQueryçæºç ï¼ä¸é¢ä»¥jQuery2.1.4ä¸çeachæ¹æ³ä¸¾ä¾ï¼
each: function( obj, callback, args ) {
var value,
i = 0,
length = obj.length,
isArray = isArraylike( obj );//å¦æobjæ¯ä¸ä¸ªç±»ä¼¼æ°ç»çç»æï¼å¯ç¨foréåçï¼ï¼å为true
if ( args ) {
if ( isArray ) {
for ( ; i < length; i++ ) {
value = callback.apply( obj[ i ], args );//循ç¯è°ç¨
if ( value === false ) {//å¦æè¿åå¼å
¨çäºï¼å
æ¬ç±»ååå¼ï¼falseï¼å°±éåºå¾ªç¯
break;
}
}
} else {
for ( i in obj ) {//è¿ç§æ¯å¯¹è±¡çï¼éè¦ç¨for inéå
value = callback.apply( obj[ i ], args );
if ( value === false ) {
break;
}
}
}
// A special, fast, case for the most common use of each
} else {
if ( isArray ) {
for ( ; i < length; i++ ) {
value = callback.call( obj[ i ], i, obj[ i ] );
if ( value === false ) {
break;
}
}
} else {
for ( i in obj ) {
value = callback.call( obj[ i ], i, obj[ i ] );
if ( value === false ) {
break;
}
}
}
}
return obj;
}
ç±æºç å¯ä»¥çåºï¼åªæåè°å½æ°è¿åçå¼ä¸ºfalseæ¶ï¼æä¼éåºå¾ªç¯