方法語法:map()
map(callback)
為包裝集中的每一個元素調用回調函數,并將返回值收集到jQuery對象的實例中。
參數
callback (函數)回調函數,為包裝集中的每個元素調用該函數。
比如,下面的代碼將頁面上所有div元素的id值收集到一個javascript數組中:
再看如下的表單中包含的一組 checkbox 框:
我們可以得到一個用逗號分隔的復選框 ID:
此調用的結果是字符串, "two,four,six".
在回調函數中,this指向每次迭代中的當前DOM元素。
方法語法:each()
each(iterator)
遍歷匹配集里所有的元素,為每一個元素調用傳入的迭代函數
iterator (函數)回調函數,為匹配集中的每個元素調用
each()方法也可以用來遍歷javascript數組對象甚至單個對象,舉個栗子:
這個語句會為傳入$()中數組的每個元素調用迭代函數,函數中的this指向單獨的數組項。
每次回調函數執行時,會傳遞當前循環次數作為參數(從0開始計數)。更重要的是,回調函數是在當前DOM元素為上下文的語境中觸發的。因此關鍵字 this 總是指向這個元素。
假設頁面上有這樣一個簡單的無序列表。
你可以選中并迭代這些列表:
列表中每一項會顯示在下面的消息中:
0: foo
1: bar
兩者的區別
map()方法主要用來遍歷操作數組和對象,each()主要用于遍歷jquery對象。
each()返回的是原來的數組,并不會新創建一個數組。
map()方法會返回一個新的數組。如果在沒有必要的情況下使用map,則有可能造成內存浪費。
新聞熱點
疑難解答
圖片精選