jQuery下有個概念叫“類別數組”,例如$( " li " ),當取到一個集合的時候,會有數組的一些屬性,但是instancseof Array仍然是false。但是var a=$( "li" ).get()這樣處理一下,然後instancseof Array就回傳true。
要注意var a=$( "li" ).get(1)裡頭加序號可以取到單一元素,這些元素的性質不是jQuery對象,而是Js對象,所以不可直接用jQuery方法。
map()的功能主要有兩步,第一步就是遍歷,第二步就是替換。
$( " li " ).map( function( ){ return $(this).text( ); // 注意return关键字不可少 } )
map先遍歷,每一項都回傳一個text()值,然後map會將這些值會自動去替換$("li")集合的每一項值,所以這個時候還是個類別數組(因為還是$(" li ")的殼子),不是個真正的數組。於是後面加個get()操作就變成真正的陣列了,於是可以用join()這樣專屬於陣列的方法。
如:
#$( " li " ).map( function( ){ return $(this).text( ); } ).get( ).join("%") // 拼接成字符串,中间用“%”隔开
##補充:map()和get()也可以直接操縱陣列程式碼如下:
var arrayObj=["www","xxx","ddd"]; var ww=$.map(arrayObj,function(i){ return i; }).join(","); console.log(ww); var tt=$(":checkbox").map(function(){ return this.value; }).get().join(","); console.log(tt);
以上是jQuery中map()與get()的具體分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!