Jquery map()與get()

jQuery之map()和get()

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);
轉自:http://blog.csdn.net/cutemurphy/article/details/6832418
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章