$( "p" ) .append( $( "input" ).map(function() { return $( this ).val(); }) .get() .join( ", " ) );
<form> <input type="text" name="name" value="John"> <input type="text" name="password" value="password"> <input type="text" name="url" value="http://ejohn.org/"> </form>
這是我從官網拿出來的一個example
本人曾經很困惑,不明白爲什麼在map方法的後面要在調用一個get方法。按照理論來說,map 返回出來的數據應該一個數組(集合)。 可以直接調用join方法轉化爲string.
仔細閱讀文檔後發現這裏有文章。
我原來混淆的javascript object/array(其實就是dom) 和jqeruy object/ array這兩個概念
其實javascript的對象和數組和jquery的是相互不能識別的。
當我發現了這個”祕密“之後,就大概明白爲什麼需要get 方法了
.get(): Retrieve the DOM elements matched by the jQuery object.
這是官網的定義。就是把jquery 對象轉爲dom 對象。 所有的dom對象都是可以被javascript所使用的。這裏jquery其實就是通過get這個機制來順利過渡兩者。
所以我們回頭看上面這個例子
map 返回了jquery array 然後通過get方法轉爲javascript dom array。 最後調用join方法變爲string.