Maison  >  Article  >  interface Web  >  Traversée : jquery $().each et $.each()

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

巴扎黑
巴扎黑original
2017-07-09 11:08:061057parcourir

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>

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

<br>

<br>
$.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>

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);

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;
    }

 

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!

Déclaration:
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