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("%") // 拼接成字符串,中間用“%”隔開