jquery map調用get()方法的困惑

$( "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.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章