国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 網(wǎng)站 > WEB開(kāi)發(fā) > 正文

jquery的$().each,$.each的區(qū)別

2024-04-27 15:16:39
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

在jquery中,遍歷對(duì)象和數(shù)組,經(jīng)常會(huì)用到$().each和$.each(),兩個(gè)方法。兩個(gè)方法是有區(qū)別的,從而這兩個(gè)方法在針對(duì)不同的操作上,顯示了各自的特點(diǎn)。

$().each,對(duì)于這個(gè)方法,在dom處理上面用的較多。如果頁(yè)面有多個(gè)input標(biāo)簽類型為checkbox,對(duì)于這時(shí)用$().each來(lái)處理多個(gè)checkbook,例如:

$(“input[name=’ch’]”).each(function(i){if($(this).attr(‘checked’)==true){//一些操作代碼

}

回調(diào)函數(shù)是可以傳遞參數(shù),i就為遍歷的索引。

對(duì)于遍歷一個(gè)數(shù)組,用$.each()來(lái)處理,簡(jiǎn)直爽到了極點(diǎn)。例如:

$.each([{“name”:”limeng”,”email”:”xfjylimeng”},{“name”:”hehe”,”email”:”xfjylimeng”},function(i,n){alert(“索引:”+i,”對(duì)應(yīng)值為:”+n.name);});

參數(shù)i為遍歷索引值,n為當(dāng)前的遍歷對(duì)象.

 

var arr1 = [ “one”, “two”, “three”, “four”, “five” ];$.each(arr1, function(){alert(this);});輸出:one   two  three  four   fivevar arr2 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]$.each(arr2, function(i, item){alert(item[0]);});輸出:1   4   7var obj = { one:1, two:2, three:3, four:4, five:5 };$.each(obj, function(key, val) {alert(obj[key]);});輸出:1   2  3  4  5

 

在jQuery里有一個(gè)each方法,用起來(lái)非常的爽,不用再像原來(lái)那樣寫for循環(huán),jQuery源碼里自己也有很多用到each方法。

其實(shí)jQuery里的each方法是通過(guò)js里的call方法來(lái)實(shí)現(xiàn)的。

下面簡(jiǎn)單介紹一下call方法。call這個(gè)方法很奇妙,其實(shí)官方的說(shuō)明是:“調(diào)用一個(gè)對(duì)象的一個(gè)方法,以另一個(gè)對(duì)象替換當(dāng)前對(duì)象。”網(wǎng)上更多的解釋是變換上下文環(huán)境,也有說(shuō)是改變上下文this指針。call([thisObj[,arg1[, arg2[,   [,.argN]]]]])

參數(shù)thisObj可選項(xiàng)。將被用作當(dāng)前對(duì)象的對(duì)象。arg1, arg2,  , argN可選項(xiàng)。將被傳遞方法參數(shù)序列。

說(shuō)明call 方法可以用來(lái)代替另一個(gè)對(duì)象調(diào)用一個(gè)方法。call 方法可將一個(gè)函數(shù)的對(duì)象上下文從初始的上下文改變?yōu)橛?thisObj 指定的新對(duì)象。

引用網(wǎng)上有一個(gè)很經(jīng)典的例子

Js代碼function add(a,b){alert(a+b);}function sub(a,b){alert(a-b);}add.call(sub,3,1);

用 add 來(lái)替換 sub,add.call(sub,3,1) == add(3,1) ,所以運(yùn)行結(jié)果為:alert(4);注意:js 中的函數(shù)其實(shí)是對(duì)象,函數(shù)名是對(duì) Function 對(duì)象的引用。

具體call更深入的就不在這里提了。

下面提一下jQuery的each方法的幾種常用的用法

Js代碼var arr = [ “one”, “two”, “three”, “four”];$.each(arr, function(){alert(this);});//上面這個(gè)each輸出的結(jié)果分別為:one,two,three,four

var arr1 = [[1, 4, 3], [4, 6, 6], [7, 20, 9]]$.each(arr1, function(i, item){alert(item[0]);});//其實(shí)arr1為一個(gè)二維數(shù)組,item相當(dāng)于取每一個(gè)一維數(shù)組,//item[0]相對(duì)于取每一個(gè)一維數(shù)組里的第一個(gè)值//所以上面這個(gè)each輸出分別為:1   4   7

var obj = { one:1, two:2, three:3, four:4};$.each(obj, function(key, val) {alert(obj[key]);});//這個(gè)each就有更厲害了,能循環(huán)每一個(gè)屬性//輸出結(jié)果為:1   2  3  4


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 府谷县| 新龙县| 嘉峪关市| 广东省| 平舆县| 南木林县| 南漳县| 都江堰市| 苏尼特左旗| 修文县| 栾川县| 旬阳县| 中江县| 上饶市| 横峰县| 彭州市| 信阳市| 家居| 眉山市| 灵璧县| 延寿县| 张家川| 石楼县| 黄梅县| 秭归县| 新营市| 拜城县| 军事| 江口县| 大兴区| 罗城| 濮阳县| 山东省| 高雄市| 寿光市| 麻江县| 广宁县| 德庆县| 仪征市| 南江县| 若羌县|