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

JavaScript 數(shù)據(jù)元素集合與數(shù)組的區(qū)別說明

 更新時間:2010年05月06日 21:45:03   作者:  
我們在獲取一組頁面元素時常會用到getElementsByName()或是getElementsByTagName()方法。
其中g(shù)etElementsByName(name)方法是獲取頁面中所有具有name屬性的元素,但這個方法在IE與標(biāo)準(zhǔn)瀏覽器中所取到的內(nèi)容不一樣。在IE中g(shù)etElementsByName(name)方法所取到的元素是其本身就自帶有name屬性也就是form表單中所列出的所有元素(這些元素本身就自帶有name屬性);標(biāo)準(zhǔn)瀏覽器中g(shù)etElementsByName(name)方法所取到的元素是具有name屬性的元素(本身就帶有此屬性+人為添加的此屬性)。所以如果在IE瀏覽器中用此方法來獲取頁面中所有帶有name的元素時,只能取出其自身本來就具有此屬性的那些元素(表單類元素)而那些人為添加的name屬性元素則不會被取出來;標(biāo)準(zhǔn)瀏覽器則不會這樣,它會將頁面中所有帶name屬性的元素全部取出。

getElementsByName()與getElementsByTagName()方法的共同之類是它們會把所取得的頁面元素組成一個元素集合并非是數(shù)組(雖然用firebug中的console.log()打印出來時是數(shù)組的形式)。如果用Object.porototype.toString.apply(arr)方法來查看取得的數(shù)據(jù)結(jié)果時,其返回的是“[object HTMLCollection]”而不是“[object Array]”。這樣一來用這兩種方法所取得的元素集合就不能像使用數(shù)組一樣來調(diào)用數(shù)組的一些方法進(jìn)行操作了而需要將此集合進(jìn)行轉(zhuǎn)換,將元素集合轉(zhuǎn)換為數(shù)組的形式就可以像操作數(shù)組一樣對里面的元素進(jìn)行處理了。

這個元素集合具有如下的屬性和方法:

1、元素索引(index)

2、元素集合的長度(length)

3、item()方法:通過傳入不同的索引值可以取得集合中相應(yīng)的元素。IE下沒有此方法。

4、FF中還有一個namedItem(name)方法,取得具有name屬性的第一個元素。只有FF下有這個方法。

關(guān)于元素集合向數(shù)組形式的轉(zhuǎn)換方法有很多種,大家可以在網(wǎng)上搜索一下就有很多。也可以到司圖正美的這篇《js將類數(shù)組對象轉(zhuǎn)換成數(shù)組對象》博文中學(xué)習(xí)一。

以下是一個數(shù)組轉(zhuǎn)換的方法:
復(fù)制代碼 代碼如下:

function makeArray(arr){
if(arr.item){
var len = arr.length;
var array = [];
while(len--){
array[len] = arr[len];
}
return array;
}
return Array.prototype.slice.call(arr);
}

這是一個小例子,可以看一下轉(zhuǎn)換后的結(jié)果:

[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]

相關(guān)文章

最新評論

南昌县| 尤溪县| 镇巴县| 称多县| 江山市| 武穴市| 体育| 青海省| 临城县| 营山县| 开平市| 绥化市| 平舆县| 油尖旺区| 友谊县| 独山县| 柳林县| 毕节市| 宝山区| 临武县| 沭阳县| 莒南县| 奉新县| 荣昌县| 曲沃县| 马鞍山市| 合肥市| 东乌珠穆沁旗| 炉霍县| 盐边县| 湖口县| 彩票| 承德市| 新巴尔虎右旗| 绍兴市| 介休市| 南昌县| 克什克腾旗| 阿尔山市| 天峻县| 宁南县|