2014-05-23 71 views
3

當我打電話:使用jQuery map函數的結果在鏈

var result = inputs.map(function(){ return $(this).val(); }); 

result包含數組一樣:

['foo', 'bar', 'buz'] 

我想加入結果:

result.join(', '); 

作品,但是

var result = inputs.map(function(){ return $(this).val(); }).join(', '); 

TypeError: undefined is not a function 

我的問題是相當理論上 - 爲什麼我不能訪問結果陣列中的鏈條和我有結果後再操作它賦值給變量?

回答

4

jQuery的.map方法的結果不是數組,它是一個jQuery集合。使用.get()返回收集內容的數組。

var result = inputs.map(function(){ return $(this).val(); }).get().join(', '); 
+0

謝謝 - 實際上結果的類型是'object',但控制檯顯示它爲一個數組。 – hsz

+0

是的,jQuery使它的集合看起來像控制檯中的數組。第一次碰到這個時,它讓我感到困惑。 – Barmar

1

因爲返回的值是一個jQuery包裹的陣列,它不具有join方法,你應該使用jQuery get方法獲取數組。

This是一個相關的問題。

相關問題