久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      淺談Jquery中的each方法

      本篇文章給大家介紹一下Jquery中的each方法。有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)大家有所幫助。

      淺談Jquery中的each方法

      推薦教程:jQuery教程

      jQuery.each( object, callback,arg)

      each()函數(shù)是基本上所有的框架都提供了的一個(gè)工具類函數(shù),通過它,你可以遍歷對(duì)象、數(shù)組的屬性值并進(jìn)行處理。

      jQuery和jQuery對(duì)象都實(shí)現(xiàn)了該方法,對(duì)于jQuery對(duì)象,只是把each方法簡(jiǎn)單的進(jìn)行了委托:把jQuery對(duì)象作為第一個(gè)參數(shù)傳遞給jQuery的each方法。換句話說:jQuery提供的each方法是對(duì)參數(shù)一提供的對(duì)象的中所有的子元素逐一進(jìn)行方法調(diào)用。而jQuery對(duì)象提供的each方法則是對(duì)jQuery內(nèi)部的子元素進(jìn)行逐個(gè)調(diào)用。

         jQuery.prototype.each = function(fn, args) {         return jQuery.each(this, fn, args);     }

      讓我們看一下jQuery提供的each方法的具體實(shí)現(xiàn),

      jQuery.each(obj,fn,arg)

      該方法有三個(gè)參數(shù):進(jìn)行操作的對(duì)象obj,進(jìn)行操作的函數(shù)fn,函數(shù)的參數(shù)args。

      讓我們根據(jù)ojb對(duì)象進(jìn)行討論:

      1、obj對(duì)象是數(shù)組

      each方法會(huì)對(duì)數(shù)組中子元素的逐個(gè)進(jìn)行fn函數(shù)調(diào)用,直至調(diào)用某個(gè)子元素返回的結(jié)果為false為止,也就是說,我們可以在提供的fn函數(shù)進(jìn)行處理,使之滿足一定條件后就退出each方法調(diào)用。當(dāng)each方法提供了arg參數(shù)時(shí),fn函數(shù)調(diào)用傳入的參數(shù)為arg,否則為:子元素索引,子元素本身

      2、obj 對(duì)象不是數(shù)組

      該方法同1的最大區(qū)別是:fn方法會(huì)被逐次不考慮返回值的進(jìn)行進(jìn)行。換句話說,obj對(duì)象的所有屬性都會(huì)被fn方法進(jìn)行調(diào)用,即使fn函數(shù)返回false。調(diào)用傳入的參數(shù)同1類似。

      jQuery.each = function(obj, fn, args) {         if (args) {             if (obj.length == undefined) {                 for (var i in obj)                     fn.apply(obj, args);             } else {                 for (var i = 0, ol = obj.length; i < ol; i++) {                     if (fn.apply(obj, args) === false)                         break;                 }               }         } else {             if (obj.length == undefined) {                 for (var i in obj)                     fn.call(obj, i, obj);             } else {                 for (var i = 0, ol = obj.length, val = obj[0]; i < ol && fn.call(val, i, val) !== false; val = obj[++i]) { } }         }         return obj; }

      需要特別注意的是each方法中fn的具體調(diào)用方法并不是采用簡(jiǎn)單的fn(i,val)或fn(args),而是采用了fn.call(val,i,val)或fn.apply(obj.args)的形式,這意味著,在你自己的fn的實(shí)現(xiàn)中,可以直接采用this指針引用數(shù)組或是對(duì)象的子元素。這種方式是絕大多數(shù)jQuery所采用的一種實(shí)現(xiàn)方式。

      var arr = ["one", "two", "three", "four", "five"]; var obj = { one: 1, two: 2, three: 3, four: 4, five: 5 };       jQuery.each(arr, function() {         alert(this);     });     /*     one,two,three,four,five     */         jQuery.each(obj, function(i, val) {         alert(i+":"+val);     });     /*     one:1 two:2 three:3 four:4  five:5     */         jQuery.each(arr, function(i, val) {         alert(i);     });     /*     0,1,2,3,4     */         jQuery.each(arr, function(i, val) {         alert(arr[i]);     });     /*     one tow three four five     */

      贊(0)
      分享到: 更多 (0)
      ?
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)