Die jQuery.each-Methode ist eine der zentralen Werkzeugmethoden von jQuery. Es handelt sich um eine allgemeine Iterationsmethode, die zum Iterieren von Objekten und Arrays verwendet werden kann. Im Gegensatz zur Methode $().each(), die über jQuery-Objekte iteriert, kann diese Methode zum Iterieren über jedes beliebige Objekt verwendet werden. Normalerweise sind zwei Parameter erforderlich
Objekt: das Objekt oder Array, das durchlaufen werden muss.
Rückruf: Die von jedem Mitglied/Element ausgeführte Rückruffunktion.
Die Rückruffunktion hat zwei Parameter: Der erste ist das Mitglied des Objekts oder der Index des Arrays und der zweite ist die entsprechende Variable oder der entsprechende Inhalt. Wenn Sie die Each-Schleife verlassen müssen, können Sie dafür sorgen, dass die Rückruffunktion „false“ zurückgibt und andere Rückgabewerte ignoriert werden.
Durchlaufen Sie ein Array und verwenden Sie dabei sowohl den Elementindex als auch den Inhalt. Zum Beispiel:
//例遍对象,同时使用成员名称和变量内容。 $.each( [0,1,2], function(i, n){ alert( "Item #" + i + ": " + n ); }); //例遍对象,同时使用成员名称和变量内容。 $.each( { name: "John", lang: "JS" }, function(i, n){ alert( "Name: " + i + ", Value: " + n ); });
Natürlich können Sie die Instanz auch direkt zum Aufruf von
$( 'div' ).each( function(i,n){ return i+n.text; } )
<🎜 verwenden >Tatsächlich ist die Instanzmethode (Prototyp) im Quellcode auch eine aufgerufene statische Methode. Um jede Methode zu analysieren, müssen Sie also nur ihre statische Methode analysieren mit statischen Methoden.
// Execute a callback for every element in the matched set. // (You can seed the arguments with an array of args, but this is // only used internally.) each: function( callback, args ) { return jQuery.each( this, callback, args ); },
// args is for internal usage only each: function( object, callback, args ) { var name, i = 0, length = object.length, isObj = length === undefined || jQuery.isFunction( object ); if ( args ) { if ( isObj ) { for ( name in object ) { if ( callback.apply( object[ name ], args ) === false ) { break; } } } else { for ( ; i < length; ) { if ( callback.apply( object[ i++ ], args ) === false ) { break; } } } // A special, fast, case for the most common use of each } else { if ( isObj ) { for ( name in object ) { if ( callback.call( object[ name ], name, object[ name ] ) === false ) { break; } } } else { for ( ; i < length; ) { if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) { break; } } } } return object; },
Dieser Satz ist sehr prägnant geschrieben und verwendet die Prioritätsreihenfolge der zuerst auszuführenden Operatoren ===
var obj={length:'a'}; var isObj= obj.length=== undefined || jQuery.isFunction( obj ); alert(isObj); //false
} else { if ( isObj ) { for ( name in object ) { if ( callback.call( object[ name ], name, object[ name ] ) === false ) { break; } } } else { for ( ; i < length; ) { if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) { break; } } } }
//刚才的例子 $( 'div' ).each( function(i,n){ return i+n.text; } ) //等价于 $( 'div' ).each( function(i,n){ return i+this.text; } )
<🎜 ausführen >
Geben Sie abschließend das ursprüngliche Objekt oder Array usw. zurück. Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er gefällt Ihnen allen.return object;
Ausführlichere Artikel zur Verwendung von jQuery.each finden Sie auf der chinesischen PHP-Website!