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

首頁 > 編程 > JavaScript > 正文

深入理解$.each和$(selector).each

2019-11-20 10:03:22
字體:
來源:轉載
供稿:網友

$.each:該方法用于遍歷任何集合,包括數組和對象

$(selector).each:該方法用于遍歷Jquery對象

語法:$.each(obj,callback,args)

①遍歷數組

var arry = ["a","b","c","d",…];

$.each(arry,function(index,value){…})

回調函數中:index 代表數組的索引 ,value 代表數組中的值

②遍歷Json對象

var json = {key1:value1, key2:value2, key3:value3}

$.each(json, function(key,value){…})

回調函數中:key 代表json對象中的key, value 代表json對象中的value

③遍歷Jquery對象

var doms = $("div");//Jquery對象本身是一個集合,通過索引的方式可以將Jquery對象轉換為Dom對象

$.each(doms, function(index,value){..})

回調函數中:index 代表Jquery對象中的索引, value 代表Jquery對象中的dom對象,也可以通過this得到同樣的dom對象

對于③還有另外一種寫法就是 $("div").each(function(index,value){…})

對于$.each方法可以通過在回調函數中return false退出循環,如果return true 則相當于for循環中的continue

疑問:為什么$().each回調函數中的this不是Jquery對象 而是Dom對象

由于$().each方法的本質是通過調用$.each實現的,通過分析$.each源碼可知,我們可以看到callback.apply(object[i++],args)這段代碼

對于$().each傳進去的object正是Jquery對象,而object[i++]將Jquery對象轉換為dom對象,再根據apply方法劫持對象的特性,那么回調函數中的this就被改變成了dom對象

我們經常在Jquery插件中看到這種寫法,通過上面的分析,我想就應該懂了

$.fn.test = function(option){return this.each(function(){//這個this是Jquery對象alert(this);//而這個this卻是Dom對象})}

以上這篇深入理解$.each和$(selector).each就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 麻江县| 大方县| 祁门县| 东至县| 峨眉山市| 电白县| 长垣县| 锦屏县| 城市| 玉屏| 肥乡县| 深州市| 德庆县| 怀集县| 聊城市| 柘城县| 彭泽县| 阜阳市| 麟游县| 龙井市| 南靖县| 延庆县| 柳州市| 通州区| 翼城县| 潼关县| 莫力| 平度市| 兴业县| 建平县| 三明市| 雅安市| 遵义市| 阜阳市| 曲麻莱县| 宁蒗| 东丰县| 滦平县| 钦州市| 祁东县| 巩义市|