Maison > interface Web > js tutoriel > le corps du texte

Traversée : jquery $().each et $.each()

巴扎黑
Libérer: 2017-07-09 11:08:06
original
1029 Les gens l'ont consulté

Dans jquery, traverse les objets et array, en utilisant souvent $().each et $.each(), les deux méthodes.

$().each est souvent utilisé dans le traitement DOM. Si la page comporte plusieurs balises d'entrée de type case à cocher, utilisez $().each pour traiter plusieurs chéquiers, par exemple :

<br>

<span style="font-family: 宋体;">$(“input[name=’ch’]”).each(<span style="color: #0000ff;">function</span><span style="color: #000000;">(i){</span><span style="color: #0000ff;">if</span>($(<span style="color: #0000ff;">this</span>).attr(‘checked’)==<span style="color: #0000ff;">true</span><span style="color: #000000;">)
{</span><span style="color: #008000;">//</span><span style="color: #008000;">一些操作代码</span><span style="color: #000000;">}<br><a href="http://www.php.cn/code/8530.html" target="_blank">回调函数</a>是可以传递参数,i就为遍历的索引。<br></span></span>
Copier après la connexion

Le parcours d'un tableau est généralement géré avec $.each() Par exemple :

<br>

<br>
Copier après la connexion
$.each([{name:"limeng",email:"xfjylimeng"},{name:"hehe",email:"xfjylimeng"}],function(i,n)

{<br>alert("Index : "+i+" la valeur correspondante est : "+n.name);<br>});<br>

Le paramètre i est la valeur de l'index de parcours, n est le parcours actuel object .

<br>var arr1 = [ "one", "two", "three", "four", "five" ];<br>$.each(arr1, function(){<br>alert(this);<br>});<br>输出:one   two  three  four   five<br><br>var arr2 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]<br>$.each(arr2, function(i, item){<br>alert(item[0]);<br>});<br>输出:1   4   7<br><br>var obj = { one:1, two:2, three:3, four:4, five:5 };<br>$.each(obj, function(key, val) {<br>alert(obj[key]);<br>});<br>输出:1   2  3  4  5<br>
Copier après la connexion

En fait, chaque méthode dans jQuery est implémentée via la méthode d'appel dans js.

Ce qui suit est une brève introduction à la méthode d'appel. <br>La méthode d'appel est très merveilleuse. En fait, la description officielle est : "Appelez une méthode d'un objet et remplacez l'objet actuel par un autre objet. Plus d'explications sur Internet consistent à changer le." environnement contextuel, et certains disent aussi C'est pour changer le contexte ce pointeur. <br>call([thisObj[,arg1[, arg2[, [,.argN]]]]])

Paramètres <br>thisObj<br>Facultatif. L'objet qui sera utilisé comme objet actuel. <br>arg1, arg2, , argN<br>Facultatif. Une séquence de paramètres de méthode sera transmise.

Explication<br>La méthode d'appel peut être utilisée pour appeler une méthode à la place d'un autre objet. La méthode d'appel modifie le contexte d'objet d'une fonction du contexte initial au nouvel objet spécifié par thisObj.

Citation d'un exemple très classique sur Internet

Code Js

<br>

function add(a,b){
alert(a+b);}<br>function sub(a,b){
alert(a-b);}<br>add.call(sub,3,1);
Copier après la connexion

Remplacez sub par add, add.call(sub,3,1) == add(3,1) , donc le résultat en cours d'exécution est : alert(4);<br>Remarque : les fonctions dans js sont en fait des objets, et le nom de la fonction est une référence au Objet de fonction .

Voici quelques utilisations courantes de chaque méthode de jQuery

Code Js<br>var arr = [ "un", "deux", "trois", "quatre"];<br>$.each( arr, fonction( ){<br>alert(this);<br>});<br>//Les résultats générés par chacun ci-dessus sont respectivement Pour : un , deux, trois, quatre

var arr1 = [[1, 4, 3], [4, 6, 6], [7, 20, 9]]<br>$.each(arr1, function(i, item){<br>alert(item[0]);<br>});<br>//其实arr1为一个二维数组,item相当于取每一个一维数组<br>//item[0]相对于取每一个一维数组里的第一个值<br>//所以上面这个each输出分别为:1   4   7

var obj = { one:1, two:2, three:3, four:4};<br>$.each(obj, function(key, val) {<br>alert(obj[key]);<br>});<br>//这个each就有更厉害了,能循环每一个属性<br>//输出结果为:1   2  3  4

 

jQuery each源码

 

<br>

each: function( obj, callback ) {        var length, i = 0;        if ( isArrayLike( obj ) ) {
            length = obj.length;            for ( ; i < length; i++ ) {                if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {                    break;
                }
            }
        } else {            for ( i in obj ) {                if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {                    break;
                }
            }
        }        return obj;
    }
Copier après la connexion

 

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!