jQuery手機移動端農曆公曆日期時間選擇程式碼

愛分享的小佳發表於2020-12-21

在這裡插入圖片描述
jQuery手機移動端農曆公曆日期時間選擇程式碼,支援公曆和農曆切換,可只選擇日期或日期時間都選擇。

檔案:n459.com/file/25127180-476964728

以下內容無關:

-------------------------------------------分割線---------------------------------------------

jQuery.each( object, callback,arg)

each()函式是基本上所有的框架都提供了的一個工具類函式,通過它,你可以遍歷物件、陣列的屬性值並進行處理。

jQuery和jQuery物件都實現了該方法,對於jQuery物件,只是把each方法簡單的進行了委託:把jQuery物件作為第一個引數傳遞給jQuery的each方法。換句話說:jQuery提供的each方法是對引數一提供的物件的中所有的子元素逐一進行方法呼叫。而jQuery物件提供的each方法則是對jQuery內部的子元素進行逐個呼叫。

jQuery.prototype.each = function(fn, args) {

    return jQuery.each(this, fn, args);

}

讓我們看一下jQuery提供的each方法的具體實現,

jQuery.each(obj,fn,arg)

該方法有三個引數:進行操作的物件obj,進行操作的函式fn,函式的引數args。

讓我們根據ojb物件進行討論:

1.obj物件是陣列

each方法會對陣列中子元素的逐個進行fn函式呼叫,直至呼叫某個子元素返回的結果為false為止,也就是說,我們可以在提供的fn函式進行處理,使之滿足一定條件後就退出each方法呼叫。當each方法提供了arg引數時,fn函式呼叫傳入的引數為arg,否則為:子元素索引,子元素本身

2.obj 物件不是陣列

該方法同1的最大區別是:fn方法會被逐次不考慮返回值的進行進行。換句話說,obj物件的所有屬性都會被fn方法進行呼叫,即使fn函式返回false。呼叫傳入的引數同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的具體呼叫方法並不是採用簡單的fn(i,val)或fn(args),而是採用了fn.call(val,i,val)或fn.apply(obj.args)的形式,這意味著,在你自己的fn的實現中,可以直接採用this指標引用陣列或是物件的子元素。這種方式是絕大多數jQuery所採用的一種實現方式。

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

*/

相關文章