2016年5月31日 星期二

如何解決 Jquery.map() 回傳 'prevObject' 的問題

今天在處理一個table的時候出現一個問題,
我用jquery.map()去loop through 所有已勾選的checkbox並吧該勾選的資料放入一個array做為回傳的資料.

結果在看console時發現array 變成

[x,x,x,x,x, prevObject: jQuery.fn.jQuery.init[7], context: ]

根據我在這裡找到的答案是:

當你用jquery.map()的時候, 它回傳的是一個jquery collection而不只是迴圈內你所形成的array. 所以你需要在後面加一個toArray()來存取你要的array.

例.

$(selector).map(function(i,v){
//Do something....
}).toArray();
就可以只取陣列, 而不取多餘的資料了