最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js中將HTMLCollection/NodeList/偽數(shù)組轉(zhuǎn)換成數(shù)組的代碼

 更新時(shí)間:2011年07月31日 21:51:16   作者:  
js中將HTMLCollection/NodeList/偽數(shù)組轉(zhuǎn)換成數(shù)組的代碼,需要的朋友可以參考下。
這里把符合以下條件的對(duì)象稱為偽數(shù)組
1,具有l(wèi)ength屬性
2,按索引方式存儲(chǔ)數(shù)據(jù)
3,不具有數(shù)組的push,pop等方法

1,function內(nèi)的arguments 。
2,通過(guò)document.forms,F(xiàn)orm.elements,Select.options,document.getElementsByName() ,document.getElementsByTagName() ,childNodes/children 等方式獲取的集合(HTMLCollection,NodeList)等。
3,特殊寫法的對(duì)象 ,如
復(fù)制代碼 代碼如下:

var obj={};
obj[0] = "一";
obj[1] = "二";
obj[2] = "三";
obj.length = 3;

它們不具有數(shù)組的一些方法如push, pop, shift, join等。有時(shí)候需要將這些偽數(shù)組轉(zhuǎn)成真正的數(shù)組,這樣可以使用push, pop等方法。以下是工具函數(shù)makeArray
復(fù)制代碼 代碼如下:

var makeArray = function(obj){
return Array.prototype.slice.call(obj,0);
}
try{
Array.prototype.slice.call(document.documentElement.childNodes, 0)[0].nodeType;
}catch(e){
makeArray = function(obj){
var res = [];
for(var i=0,len=obj.length; i<len; i++){
res.push(obj[i]);
}
return res;
}
}

以下分別測(cè)試以上三種偽數(shù)組
復(fù)制代碼 代碼如下:

//定義一個(gè)函數(shù)fun,內(nèi)部使用makeArray將其arguments轉(zhuǎn)換成數(shù)組
function fun(){
var ary = makeArray(arguments);
alert(ary.constructor );
}
//調(diào)用
fun(3,5);

//假設(shè)頁(yè)面上有多個(gè)段落元素p
var els = document.getElementsByTagName("p");
var ary1 = makeArray(els);
alert(ary1.constructor);

//特殊的js對(duì)象(如jquery對(duì)象)
var obj={};
obj[0] = "一";
obj[1] = "二";
obj[2] = "三";
obj.length = 3;
var ary2 = makeArray(obj);
alert(ary2.constructor);

相關(guān)文章

最新評(píng)論

德庆县| 友谊县| 临夏市| 甘孜县| 红桥区| 灌云县| 安溪县| 新泰市| 金华市| 温州市| 辉南县| 集贤县| 伊通| 嘉义市| 八宿县| 磴口县| 大化| 贵州省| 景东| 黔西| 普宁市| 丹阳市| 阜康市| 古蔺县| 武鸣县| 友谊县| 普安县| 珲春市| 克什克腾旗| 富平县| 德化县| 天全县| 调兵山市| 贡觉县| 江门市| 肃南| 溆浦县| 神木县| 辉南县| 安远县| 特克斯县|