jQuery中的each方法執行個體

來源:互聯網
上載者:User

標籤:jquery   each   迭代   遍曆   

$.each()和$(selector).each()很相似,但是是不一樣的。

前者可用於遍曆一個數組或是json對象

而後者是專門用來遍曆一個jQuery對象

先來說說$.each()吧,一般是這麼用的

$.each(arr, function(i, v){// do something})

其中arr也就是集合,也可以是json對象

而回呼函數中的i則是數組的下標(在json中則是對應的key)

而v則是arr[i]的值(在json中則是對應的value)

下面來看一個簡單的執行個體:

var json = {name:"zhu", age:10}var arr = ['a','b','c','d']$.each(arr, function(i, v){alert(i + ":" + v)});$.each(json, function(k, v){alert(k + ":" + v)});

這樣就完成了對數組和json的遍曆。

當然了,如此遍曆用原生的js也是可以輕鬆做到的

比如遍曆上面的json或是arr,只需要:

for(var k in json){alert(k + ":" + arr[k])}

看起來似乎還是js更簡潔一些吧~效能上可能也要好一點


下面介紹$(selector).each(),這個方法在js中就不好找到替代品了。

其中$(selector)負責選中一組jQuery元素,而each函數負責遍曆它

比如我們想對一組“li”改變其文字顏色

<style>.red{color: red;}</style><ul><li>Dog</li><li>Cat</li><li>Mouse</li></ul><input type="button" id="btn"><script>$("#btn").click(function() {$("li").each(function() {$(this).toggleClass('red');});});</script>

不過實際上,jQuery中存在隱式迭代的現象

每當我們調用選取器方法尋找dom樹裡的元素時,其實就是把找到的dom元素存入一個jQuery對象裡的dom數組中,然後再把這個jQuery對象返回。

而所謂隱式迭代也就是當我們調用jQuery方法時(如 toggleClass(..)),jQuery方法會遍曆內部 dom數組,並調用每個dom元素的對應的dom屬性或方法完成操作。

所有click中的函數並不需要使用each,直接$("li").toggleClass(‘red‘)也可以


在$(seletor).each(..)中,this被綁定到了當前遍曆的DOM對象,如需獲得jQuery對象$(this)就可以了

值得注意的是,還可以在遍曆過程中提前退出遍曆,只需要return false就可以了

jQuery中的each方法執行個體

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.